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-head mailing list