From owner-freebsd-net Wed Apr 5 6:28:54 2000 Delivered-To: freebsd-net@freebsd.org Received: from rerun.lucentctc.com (rerun.lucentctc.com [199.93.237.2]) by hub.freebsd.org (Postfix) with ESMTP id AEA6337B69F for ; Wed, 5 Apr 2000 06:28:49 -0700 (PDT) (envelope-from mcambria@lucent.com) Received: by rerun.lucentctc.com with Internet Mail Service (5.5.2448.0) id ; Wed, 5 Apr 2000 09:28:36 -0400 Message-ID: <75ADD7496F0BD211ADC000104B8846CF012CED4C@rerun.lucentctc.com> From: "Cambria, Mike" To: 'Marco Molteni' , freebsd-net@FreeBSD.ORG Subject: RE: MPLS (Multiprotocol Label Switching) on FreeBSD? Date: Wed, 5 Apr 2000 09:28:36 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2448.0) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Look at NIST http://www.antd.nist.gov/itg/nistswitch/ for MPLS on FreeBSD. Their page claims to have version 0.1 of MPLS on FreeBSD. Good luck, MikeC Michael C. Cambria Lucent Technologies Member of Technical Staff Bell Labs Innovations Voice: (978) 287 - 2807 300 Baker Avenue Fax: (978) 287 - 2810 Concord, Massachusetts 01742 Internet: mcambria@lucent.com -----Original Message----- From: Marco Molteni [mailto:molter@sofia.csl.sri.com] Sent: Tuesday, April 04, 2000 10:09 PM To: freebsd-net@FreeBSD.ORG Subject: MPLS (Multiprotocol Label Switching) on FreeBSD? Hi all, I wanted to learn how to do kernel programming and so I thought of implementing a cooperative routing lookup technique, for example a very simplified version of MPLS (Multiprotocol Label Switching, see [1]), or Cisco's tag switching (see [2]). As always in these cases, it turned out that it is more difficult than it seemed :-) So I wanted to know if someone has worked on this stuff on a FreeBSD box or is interested in doing some experiments together. If you are wondering what is a cooperative routing lookup technique, here is a simplified introduction: Normally routers forward IP packets based on the destination IP address, looking up the interface to use in the kernel routing table. The routing table, at least in BSD kernels, is similar to a Patricia trie (which is a special binary tree). The lookup starts at the head of the trie and walks the trie until it finds a leaf that matches. If no match is found, we go up one level and try again, eventually backtracking till the head, which normally should contain the default route. With cooperative routing lookup, the previous-hop router "knows" the structure of my tree, and gives me an "hint" (an integer) that I can use to jump directly to a small subtree that should contain the routing entry I need. Then I will give a similar hint to the next-hop router. All this should allow a router to forward a lot more packets per unit of time, because it needs fewer accesses to the routing tree to find a match. [1] http://search.ietf.org/internet-drafts/draft-ietf-mpls-arch-06.txt [2] RFC 2105 Thanks Marco To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message