svn commit: r271291 - head/sys/netinet
Adrian Chadd
adrian at FreeBSD.org
Tue Sep 9 00:19:03 UTC 2014
Author: adrian
Date: Tue Sep 9 00:19:02 2014
New Revision: 271291
URL: http://svnweb.freebsd.org/changeset/base/271291
Log:
Add a flag to ip_output() - IP_NODEFAULTFLOWID - which prevents it from
overriding an existing flowid/flowtype field in the outbound mbuf with
the inp_flowid/inp_flowtype details.
The upcoming RSS UDP support calculates a valid RSS value for outbound
mbufs and since it may change per send, it doesn't cache it in the inpcb.
So overriding it here would be wrong.
Differential Revision: https://reviews.freebsd.org/D527
Reviewed by: grehan
Modified:
head/sys/netinet/ip_output.c
head/sys/netinet/ip_var.h
Modified: head/sys/netinet/ip_output.c
==============================================================================
--- head/sys/netinet/ip_output.c Mon Sep 8 21:46:14 2014 (r271290)
+++ head/sys/netinet/ip_output.c Tue Sep 9 00:19:02 2014 (r271291)
@@ -145,7 +145,8 @@ ip_output(struct mbuf *m, struct mbuf *o
if (inp != NULL) {
INP_LOCK_ASSERT(inp);
M_SETFIB(m, inp->inp_inc.inc_fibnum);
- if (inp->inp_flags & (INP_HW_FLOWID|INP_SW_FLOWID)) {
+ if (((flags & IP_NODEFAULTFLOWID) == 0) &&
+ inp->inp_flags & (INP_HW_FLOWID|INP_SW_FLOWID)) {
m->m_pkthdr.flowid = inp->inp_flowid;
M_HASHTYPE_SET(m, inp->inp_flowtype);
m->m_flags |= M_FLOWID;
Modified: head/sys/netinet/ip_var.h
==============================================================================
--- head/sys/netinet/ip_var.h Mon Sep 8 21:46:14 2014 (r271290)
+++ head/sys/netinet/ip_var.h Tue Sep 9 00:19:02 2014 (r271291)
@@ -161,6 +161,7 @@ void kmod_ipstat_dec(int statnum);
#define IP_SENDTOIF 0x8 /* send on specific ifnet */
#define IP_ROUTETOIF SO_DONTROUTE /* 0x10 bypass routing tables */
#define IP_ALLOWBROADCAST SO_BROADCAST /* 0x20 can send broadcast packets */
+#define IP_NODEFAULTFLOWID 0x40 /* Don't set the flowid from inp */
#ifdef __NO_STRICT_ALIGNMENT
#define IP_HDR_ALIGNED_P(ip) 1
More information about the svn-src-all
mailing list