Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 4 Apr 2000 19:09:09 -0700
From:      Marco Molteni <molter@sofia.csl.sri.com>
To:        freebsd-net@freebsd.org
Subject:   MPLS (Multiprotocol Label Switching) on FreeBSD?
Message-ID:  <20000404190909.A826@sofia.csl.sri.com>

next in thread | raw e-mail | index | archive | help
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




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