patch-2.4.27 linux-2.4.27/include/net/sctp/sctp.h
Next file: linux-2.4.27/include/net/sctp/sm.h
Previous file: linux-2.4.27/include/net/sctp/constants.h
Back to the patch index
Back to the overall index
- Lines: 33
- Date:
2004-08-07 16:26:06.487422096 -0700
- Orig file:
linux-2.4.26/include/net/sctp/sctp.h
- Orig date:
2004-04-14 06:05:40.000000000 -0700
diff -urN linux-2.4.26/include/net/sctp/sctp.h linux-2.4.27/include/net/sctp/sctp.h
@@ -454,12 +454,15 @@
static inline int sctp_frag_point(const struct sctp_opt *sp, int pmtu)
{
int frag = pmtu;
- frag -= SCTP_IP_OVERHEAD + sizeof(struct sctp_data_chunk);
- frag -= sizeof(struct sctp_sack_chunk);
+
+ frag -= sp->pf->af->net_header_len;
+ frag -= sizeof(struct sctphdr) + sizeof(struct sctp_data_chunk);
if (sp->user_frag)
frag = min_t(int, frag, sp->user_frag);
+ frag = min_t(int, frag, SCTP_MAX_CHUNK_LEN);
+
return frag;
}
@@ -489,6 +492,14 @@
err = (sctp_errhdr_t *)((void *)err + \
WORD_ROUND(ntohs(err->length))))
+#define sctp_walk_fwdtsn(pos, chunk)\
+_sctp_walk_fwdtsn((pos), (chunk), ntohs((chunk)->chunk_hdr->length) - sizeof(struct sctp_fwdtsn_chunk))
+
+#define _sctp_walk_fwdtsn(pos, chunk, end)\
+for (pos = chunk->subh.fwdtsn_hdr->skip;\
+ (void *)pos <= (void *)chunk->subh.fwdtsn_hdr->skip + end - sizeof(struct sctp_fwdtsn_skip);\
+ pos++)
+
/* Round an int up to the next multiple of 4. */
#define WORD_ROUND(s) (((s)+3)&~3)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)