Subject: Text version of NIST Switch foils

From: Mark Carson <[email-masked]>
Date: Fri, 12 Nov 1999 12:01:39 -0500 (EST)

Here is a text copy of the NIST Switch presentation I gave yesterday.
A PostScript version is available at the NIST Switch website,
http://www.antd.nist.gov/nistswitch/ietf.ps.gz.

By the way, there was a question about NIST Switch performance.  This
will vary with the speed of the machine and the network card, and the
quality of the network card's device driver.  Kind of humbling, but any
attempts at optimization we do in the higher-level code mostly amount to
noise level, except in some extreme cases, like with huge routing
tables.  Given a fast enough processor, the limiting factor is going to
be PCI bus speed - with copy in and out, you're never going to get a
sustained throughput more than half the PCI bus speed.

Anyway, as a concrete number, I ran some long transfers through 3 NIST
Switch boxes (A->B->C) hooked up with dedicated 100Mbit Ethernet links,
and got rates of around 88Mbit/sec.  This is obviously not a thorough
test, but should give you an idea of the order of magnitude.

-----------------------------------------------------------------
NIST Switch
A Platform for Research on MPLS and
Quality of Service Routing

Mark Carson*, Samir Shah, Michael Zink+,
Doug Montgomery, Jin Ho Hahm#

National Institute of Standards and Technology (NIST) and
* University of Maryland, College Park
+ University of Technology, Darmstadt (Germany)
# ETRI (Korea)

-----------------------------------------------------------------
What is label switching?

* Multiprotocol or multilayer label switching is the use of layer 2
  constructs - "labels" or "tags" - for higher-level purposes
* "Layer 2 constructs" include:
	*	(Extended) Ethernet headers
	*	Asynchronous Transfer Mode (ATM) virtual circuit (VC) or
		virtual path (VP) identifiers
* "Higher-level purposes" include:
	*	Multicast routing
	*	QoS provisioning and routing
	*	Traffic engineering
*	sometimes referred to as "layer 2 1/2 routing"

-----------------------------------------------------------------
Why is label switching interesting?

* Labels are a new networking construct with as yet no firmly fixed
  associations.
* Labels are potentially useful for many purposes:
	*	bandwidth or latency guarantees
	*	service differentiation
	*	traffic management
	*	virtual private network construction
	*	load balancing
	*	virtual overlay network construction
	*	more efficient routing, both QoS and multicast

-----------------------------------------------------------------
Need for experimental platform

* Label switching is a technique which offers much potential for improved
  routing performance and capability.
* Taking best advantage of this potential can be quite complex, requiring
  some period of experimentation and development.
* The increased capabilities of cheap commodity hardware and free
  operating systems made possible the creation of a "free" label switching
  platform, NIST Switch.

-----------------------------------------------------------------
NIST Switch platform

Hardware components
*	Rack mounted PC chassis
*	Single or dual (350MHz or 400MHz) processors
*	64MB or 128MB memory
*	Commodity single or quad port Ethernet cards, and/or ATM cards
*	Net price around $1165 (as of 9/98)

Software components
*	FreeBSD, ALTQ, RSVPd
*	Linux 2.2 "native" in the works

-----------------------------------------------------------------
NIST Switch Architecture

* NIST Switch operates as a new layer 2 1/2 protocol handler in the kernel,
  between the link layer (Ethernet or ATM) and IP.
  	*	Labels applied (at borders) via a sort of "best-fit"
  		matching (on combinations of destination/source IP address,
  		protocol, port, and ToS bits) from the label database.
	*	QoS through class-based queueing, using a label-adapted
		version of ALTQ from Sony Japan (on FreeBSD), or
		label-adapted "native" queueing in Linux.
	*	Label distribution and signalling through extensions to
		ISI RSVPd (in current FreeBSD version), or through CR-LDP
		(in future versions)
* NIST Switch components configured as loadable kernel modules and user-level
  daemons, to allow easy alteration/replacement.

-----------------------------------------------------------------
Release Information

Version 0.1 (released during Oslo IETF)
*	FreeBSD 2.2.6 + ALTQ 1.0.1
*	RSVPd 4.2a3
*	Ethernet support only

Version 0.2 (currently under test)
*	FreeBSD 3.x + latest ALTQ
*	Implements draft-ietf-mpls-rsvp-lsp-tunnel-04.txt
*	ATM support
*	Undergoing interoperability testing with Cisco, Juniper

Version 0.3 (around next IETF meeting)
*	CR-LDP support
*	Port to Linux 2.2.x
*	Linux version LDP label distribution only, not RSVP

-----------------------------------------------------------------
What can you do?

* Grab (new) release from:
	*	http://www.antd.nist.gov/itg/nistswitch
* Join mailing list through:
	*	[email-masked]
* Contribute code
	*	NIST Switch "proper" is public domain
	*	Contributed modules can be any reasonable "free" license
* Make suggestions
	*	"Private" developer list is [email-masked]

-----------------------------------------------------------------

Mark Carson	[email-masked]	301-975-3694	Fax 301-590-0932
Department of Computer Science   University of Maryland, College Park -or-
NIST		Bldg 820 Room 455	Gaithersburg MD 20899