diff options
author | rrs <rrs@FreeBSD.org> | 2011-02-07 08:12:24 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2011-02-07 08:12:24 +0000 |
commit | 8f59f2b52866c0ca0fe036bac98579cfc5d6abb4 (patch) | |
tree | e9e8cb6bf74976f98b493a60e98c02c1a3ea8740 /sys/netinet | |
parent | 29653e7e7e59a428f00d7d2c68c71e1022118f86 (diff) | |
download | FreeBSD-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
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/sctp_output.c | 12 |
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 { |