Date: Fri, 15 Jan 1999 11:59:43 +0100 (MET) From: Luigi Rizzo <luigi@labinfo.iet.unipi.it> To: easmith@beatrice.rutgers.edu (Allen Smith) Cc: net@FreeBSD.ORG Subject: Re: Cisco/Intel Ethernet Trunking Message-ID: <199901151059.LAA02067@labinfo.iet.unipi.it> In-Reply-To: <9901142208.ZM5749@beatrice.rutgers.edu> from "Allen Smith" at Jan 14, 99 10:07:45 pm
next in thread | previous in thread | raw e-mail | index | archive | help
[redirected to -net because it is more relevant there] > > Cisco seems to think that FreeBSD supports ethernet trunking, where > > multiple fxp cards in the machine connect to multiple 100BaseT ports on > > the switch and all appear as 1 "port" at 100/200/300/400 MB/s. > > > > Is this actually supported in stable? If so how do you set it up? > > See ftp://ftp.flirble.org/pub/unix/hacks/FreeBSD/mpath. This work is > still in progress; one thing that would be good for this would be > doing packet output to the least-loaded interface, instead of via the > current round-robin method. i think some pieces of the bridging code already in -stable/-current could be related to this. For bridging i had to implement the concept of a cluster of interfaces so that processes on the bridge machine could talk to the outside world independently of which side of the bridge the destination was. The approach i have chosen is: * assign IP addresses only to one interface ('head') in each cluster; * ARP is resolved using the head-of-cluster ethernet address; * Incoming pkts from any interface in a cluster are sent up as if they are coming from the head-of-cluster; * outgoing pkts are sent down the protocol stack using the head-of-cluster interface up to ether_output(), where they are redirected appropriately (e.g. in the case of a bridge basing on the dest.ethernet address). This would all map nicely with the concept of ethernet trunking, if one does one additional thing: force the same ethernet address for all ports in a trunk. This is necessary to avoid the need to put cards in promiscuous mode if they can only match one destination address. The relevant code is in /sys/netinet, /sys/net and the various if_xxx.c device driver, near the #ifdef BRIDGE sections. If someone wants to implement this stuff please let me know, i'd be happy to integrate this in the tree. cheers luigi -----------------------------------+------------------------------------- Luigi RIZZO . EMAIL: luigi@iet.unipi.it . Dip. di Ing. dell'Informazione HTTP://www.iet.unipi.it/~luigi/ . Universita` di Pisa TEL/FAX: +39-050-568.533/522 . via Diotisalvi 2, 56126 PISA (Italy) -----------------------------------+------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901151059.LAA02067>