MIT ISPS Software: A Space Shuttle View
- Implements non-RSVP components of the Integrated Services
architecture
- Functional goals:
- Experiments and proof of concept
- Reference/tutorial implementation of key components
- Performance goals:
- T1 speed / tired old machines (achieved)
- >> ethernet speed / current machines (???)
- Freely available with no restrictions on use
Dave Clark, Karen Ho, Sugih Jamin, Bobby Minnear, Garrett Wollman,
John Wroclawski, and perhaps others all have their fingers in here
somewhere...
Components
- ISPS Router Kernel
- Packet classifier
- Packet scheduler
- Embryonic admission control
- Support tools
- Basic configuration program
- "netstat" extensions
- Remote management software
- RSVP-aware MBONE applications
- VAT, NV, etc.
- Next talk, not this one.
ISPS Router Kernel
- Modified BSD kernel
- Internal packet forwarding path:
Figure (GIF - 30365 bytes)
Packet Classifier
- Classifies packets into groups for processing
- Routing
- Resources management
- Link sharing
- Derived from Joel Halpern's discontiguous Patricia tree
algorithms
- "Single Level" classifier - all decisions are merged into
a single classification action for high performance
- Dynamic, in-place (usually...) class merging and unmerging
- Approach has problems when fields can move (variable
length, encapsulation, etc.)
Packet Scheduler
- Schedules packets for transmission by an interface.
- Implements the CSZ scheduling algorithm (described in old
svc model I-D, later papers)
- Building blocks for end-to-end services:
- Guaranteed service
- Predictive service
- Multiple priorities of ASAP service
- Hierarchical link sharing (control of local link usage)
- Modelled as "intelligent queue"
Scheduler Interfaces
- Queue Interface
- isps_queue(ifnet *, mbuf *, isps_class_t *);
- mbuf *isps_dequeue(ifnet *);
- Control Interface
- Add/delete/modify packet flow
- Add/delete predictive service class
- Add/delete hierarchical link sharing class
- Associate packet selector (filter spec) with flow
- Information Interface
- Structured method of obtaining stats, counts, delay info,
etc. about the queue
Admission Control
- Variant of measurement-based admission control described in
Jamin, et.al.
- Admits or rejects new service requests based on
resource availability
- Decision based on delay and bandwidth constraints
- Guaranteed flows - purely mathematical bounds
- Predictive flows - measured behavior of existing flows,
stated behavior (flowspec) of new candidate flow
- "Quasi-replaceable" kernel code
- Well-defined interface, sharply modular implementation
- Interface parameters may be specific to algorithm
- Approach promising, but unproven
Supporting Tools
- "iclass" - basic configuration tool
- Create and delete predictive service classes, link share
classes, permanent flows, etc.
- Command line interface
- netstat extensions
- new netstat commands show
- configuration state - share classes, etc.
- dynamic state - packet flows
- performance parameters for flows
- admission control parameters
Remote Management Software
- Provides management and configuration control for remote
routers
- Accessible GUI:
- Map-based top-level interface (tkined)
- Understandable specification of class parameters
- Preserves config state across router crashes
- Implementation
- User interface and router components
- SunRPC communication
Implementation
- Implemented in/on BSD Unix
- FreeBSD (4.4-vintage BSD on PC platform)
- PPP
- Ethernet
- In progress: T1 (Niwot, SDL), ATM (NatSemi)
- DartNet SunOS 4.1
- HSI serial interface @T1 speed
- Ethernet
- Currently based on pre-pruning multicast code in each case
- Two versions somewhat different due to internal differences
in routing, kernel support code
- Question: what is useful to release?