Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 May 2012 01:50:15 GMT
From:      dfilter@FreeBSD.ORG (dfilter service)
To:        freebsd-net@FreeBSD.org
Subject:   Re: kern/138620: commit references a PR
Message-ID:  <201205030150.q431oFdd041080@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/138620; it has been noted by GNATS.

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/138620: commit references a PR
Date: Thu,  3 May 2012 01:41:22 +0000 (UTC)

 Author: emaste
 Date: Thu May  3 01:41:12 2012
 New Revision: 234936
 URL: http://svn.freebsd.org/changeset/base/234936
 
 Log:
   Relax restriction on direct tx to child ports
   
   Lagg(4) restricts the type of packet that may be sent directly to a child
   port, to avoid undesired output from accidental misconfiguration.
   Previously only ETHERTYPE_PAE was permitted.
   
   BPF writes to a lagg(4) child port are presumably intentional, so just
   allow them, while still blocking other packets that should take the
   aggregation path.
   
   PR:		kern/138620
   Approved by:	thompsa@
 
 Modified:
   head/sys/net/if_lagg.c
 
 Modified: head/sys/net/if_lagg.c
 ==============================================================================
 --- head/sys/net/if_lagg.c	Wed May  2 21:50:13 2012	(r234935)
 +++ head/sys/net/if_lagg.c	Thu May  3 01:41:12 2012	(r234936)
 @@ -764,28 +764,18 @@ fallback:
  	return (EINVAL);
  }
  
 +/*
 + * For direct output to child ports.
 + */
  static int
  lagg_port_output(struct ifnet *ifp, struct mbuf *m,
  	struct sockaddr *dst, struct route *ro)
  {
  	struct lagg_port *lp = ifp->if_lagg;
 -	struct ether_header *eh;
 -	short type = 0;
  
  	switch (dst->sa_family) {
  		case pseudo_AF_HDRCMPLT:
  		case AF_UNSPEC:
 -			eh = (struct ether_header *)dst->sa_data;
 -			type = eh->ether_type;
 -			break;
 -	}
 -
 -	/*
 -	 * Only allow ethernet types required to initiate or maintain the link,
 -	 * aggregated frames take a different path.
 -	 */
 -	switch (ntohs(type)) {
 -		case ETHERTYPE_PAE:	/* EAPOL PAE/802.1x */
  			return ((*lp->lp_output)(ifp, m, dst, ro));
  	}
  
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205030150.q431oFdd041080>