From owner-freebsd-net Fri Feb 9 15: 1: 8 2001 Delivered-To: freebsd-net@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 618) id D625637B401; Fri, 9 Feb 2001 15:00:49 -0800 (PST) Subject: Re: call for testers: port aggregation netgraph module In-Reply-To: from Alex Pilosov at "Feb 9, 2001 05:23:02 pm" To: alex@pilosoft.com (Alex Pilosov) Date: Fri, 9 Feb 2001 15:00:49 -0800 (PST) Cc: dnelson@emsphone.com, hackers@FreeBSD.ORG, net@FreeBSD.ORG, cdillon@wolves.k12.mo.us X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20010209230049.D625637B401@hub.freebsd.org> From: wpaul@FreeBSD.ORG (Bill Paul) Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > On Fri, 9 Feb 2001, Chris Dillon wrote: > > > On Fri, 9 Feb 2001, Dan Nelson wrote: > > > Cool, if thats all it will take, I'll give it a try. But, whatever > > method Compaq/Intel is using doesn't require me to set up the ports on > > the switch as being part of a trunk. It "just works". And IIRC, when > Its not real trunking. Your incoming traffic will still come on a single > link, only outbound traffic will be shared. (Or at least that's how I > think compaq stuff will work). That doesn't make any sense. If a host on one side of the channel can transmit over multiple links, then the host on the other end by definintion has to be able to receive over multiple links. The ng_fec module does an XOR of the bottom few bits of the source and destination addresses of a packet. (You can use either the ethernet addresses or the IP addresses.) The resulting value is used to select a port from the bundle and the packet is transmitted over that port. This means that all traffic in a given 'flow' will use the same link. (If the link is dead, the next link over is used instead.) For reception, all the traffic received from all of the interfaces in the bundle is simply dumped into the input queue for the fec0 pseudo-interface. This involves intercepting frames at the top of ether_input() using one of the netgraph vectors that was added there, and chancing the rcvif pointer in the mbuf header. -Bill To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message