svn commit: r254519 - in head/sys: netinet netinet6 sys

Julian Elischer julian at freebsd.org
Tue Aug 20 03:05:08 UTC 2013


On 8/19/13 7:08 PM, Andre Oppermann wrote:
> Author: andre
> Date: Mon Aug 19 11:08:36 2013
> New Revision: 254519
> URL: http://svnweb.freebsd.org/changeset/base/254519
>
> Log:
>    Move the global M_SKIP_FIREWALL mbuf flags to a protocol layer specific
>    flag instead.  The flag is only used within the IP and IPv6 layer 3
>    protocols.

weeeeelllll, "maybe"
Layer 2 usage of ipfw could make use of this flag as well.
Cisco were using L2 ipfw some years back. I don't know if this affects 
them at all.

>    
>    Because some firewall packages treat IPv4 and IPv6 packets the same the
>    flag should have the same value for both.
>    
>    Discussed with:	trociny, glebius
>
> Modified:
>    head/sys/netinet/ip_var.h
>    head/sys/netinet6/ip6_var.h
>    head/sys/sys/mbuf.h
>
> Modified: head/sys/netinet/ip_var.h
> ==============================================================================
> --- head/sys/netinet/ip_var.h	Mon Aug 19 10:34:10 2013	(r254518)
> +++ head/sys/netinet/ip_var.h	Mon Aug 19 11:08:36 2013	(r254519)
> @@ -163,10 +163,12 @@ void	kmod_ipstat_dec(int statnum);
>   #define IP_ALLOWBROADCAST	SO_BROADCAST	/* 0x20 can send broadcast packets */
>   
>   /*
> - * mbuf flag used by ip_fastfwd
> + * IPv4 protocol layer specific mbuf flags.
>    */
>   #define	M_FASTFWD_OURS		M_PROTO1	/* changed dst to local */
>   #define	M_IP_NEXTHOP		M_PROTO2	/* explicit ip nexthop */
> +#define	M_SKIP_FIREWALL		M_PROTO3	/* skip firewall processing,
> +						   keep in sync with IP6 */
>   #define	M_IP_FRAG		M_PROTO4	/* fragment reassembly */
>   
>   #ifdef __NO_STRICT_ALIGNMENT
>
> Modified: head/sys/netinet6/ip6_var.h
> ==============================================================================
> --- head/sys/netinet6/ip6_var.h	Mon Aug 19 10:34:10 2013	(r254518)
> +++ head/sys/netinet6/ip6_var.h	Mon Aug 19 11:08:36 2013	(r254519)
> @@ -293,7 +293,12 @@ struct ip6aux {
>   #define	IPV6_FORWARDING		0x02	/* most of IPv6 header exists */
>   #define	IPV6_MINMTU		0x04	/* use minimum MTU (IPV6_USE_MIN_MTU) */
>   
> -#define	M_IP6_NEXTHOP		M_PROTO7	/* explicit ip nexthop */
> +/*
> + * IPv6 protocol layer specific mbuf flags.
> + */
> +#define	M_IP6_NEXTHOP		M_PROTO2	/* explicit ip nexthop */
> +#define	M_SKIP_FIREWALL		M_PROTO3	/* skip firewall processing,
> +						   keep in sync with IPv4 */
>   
>   #ifdef __NO_STRICT_ALIGNMENT
>   #define IP6_HDR_ALIGNED_P(ip)	1
>
> Modified: head/sys/sys/mbuf.h
> ==============================================================================
> --- head/sys/sys/mbuf.h	Mon Aug 19 10:34:10 2013	(r254518)
> +++ head/sys/sys/mbuf.h	Mon Aug 19 11:08:36 2013	(r254519)
> @@ -196,7 +196,7 @@ struct mbuf {
>   #define	M_FRAG		0x00000800 /* packet is a fragment of a larger packet */
>   #define	M_FIRSTFRAG	0x00001000 /* packet is first fragment */
>   #define	M_LASTFRAG	0x00002000 /* packet is last fragment */
> -#define	M_SKIP_FIREWALL	0x00004000 /* skip firewall processing */
> +		     /*	0x00004000    free */
>   		     /*	0x00008000    free */
>   #define	M_VLANTAG	0x00010000 /* ether_vtag is valid */
>   #define	M_PROMISC	0x00020000 /* packet was not for us */
> @@ -253,7 +253,7 @@ struct mbuf {
>    * Flags preserved when copying m_pkthdr.
>    */
>   #define	M_COPYFLAGS \
> -    (M_PKTHDR|M_EOR|M_RDONLY|M_PROTOFLAGS|M_SKIP_FIREWALL|M_BCAST|M_MCAST|\
> +    (M_PKTHDR|M_EOR|M_RDONLY|M_PROTOFLAGS|M_BCAST|M_MCAST|\
>        M_FRAG|M_FIRSTFRAG|M_LASTFRAG|M_VLANTAG|M_PROMISC|M_HASHTYPEBITS)
>   
>   /*
>
>



More information about the svn-src-all mailing list