summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2011-02-07 08:12:24 +0000
committerrrs <rrs@FreeBSD.org>2011-02-07 08:12:24 +0000
commit8f59f2b52866c0ca0fe036bac98579cfc5d6abb4 (patch)
treee9e8cb6bf74976f98b493a60e98c02c1a3ea8740
parent29653e7e7e59a428f00d7d2c68c71e1022118f86 (diff)
downloadFreeBSD-src-8f59f2b52866c0ca0fe036bac98579cfc5d6abb4.zip
FreeBSD-src-8f59f2b52866c0ca0fe036bac98579cfc5d6abb4.tar.gz
If not set (due to some error Michael is working on
fixing) set it for the net. MFC after: 3 months
-rw-r--r--sys/netinet/sctp_output.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index 17cb020..fc04190 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -3485,6 +3485,12 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp,
SCTP_BUF_NEXT(newm) = m;
m = newm;
if (net != NULL) {
+ if (net->flowidset == 0) {
+ net->flowid = stcb->asoc.my_vtag ^
+ ntohs(stcb->rport) ^
+ ntohs(stcb->sctp_ep->sctp_lport);
+ net->flowidset = 1;
+ }
m->m_pkthdr.flowid = net->flowid;
m->m_flags |= M_FLOWID;
} else {
@@ -3815,6 +3821,12 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp,
SCTP_BUF_NEXT(newm) = m;
m = newm;
if (net != NULL) {
+ if (net->flowidset == 0) {
+ net->flowid = stcb->asoc.my_vtag ^
+ ntohs(stcb->rport) ^
+ ntohs(stcb->sctp_ep->sctp_lport);
+ net->flowidset = 1;
+ }
m->m_pkthdr.flowid = net->flowid;
m->m_flags |= M_FLOWID;
} else {
OpenPOWER on IntegriCloud