Implementing A Very Simple Protocol
From ARL Wiki
Jump to navigationJump to searchVery Simple Virtual Circuit Protocol
Notes to the Writer
Goals
- Describe basic user procedure
- Begin to describe underlying architecture and components
- Talk about substrate concept
Sections
- xxx
Figures
- Application header format
- xxx
Links
Versions
- 0
- VCI in first word of UDP payload
- VCI is globally unique
- 0.0
- Minimalistic example
- 1 router (R1), 2 hosts (H1, H2)
- 0.1
- Add monitoring daemon
- 0.2
- Like GEC 4, Part 1 but routes based on VCI
- 2 routers (R1, R2), 6 hosts (H1-H6)
- 1
- VCI can change during transit as part of pkt processing
- Add Flow Label field
Configuring R1.0.0
- Use 2 physical interfaces from GEC4
- Use 2 hosts H1 and H2
- Replace R2 in GEC4 with H2
- FP
- copt = 2
- bw = 205 Mb/s
- fltrs = xxx
- qs = xxx
- buffs = xxx
- stats = fltrs
- sram = xxx
- MIs
- m1 (to H1)
- bw = 100 Mb/s
- ipaddr = 10.1.1.1
- port = 20000
- i.e., socket s1 = (10.1.1.1, 20000)
- m2 (to H2)
- bw = 100 Mb/s
- ipaddr = 10.1.16.1
- port = 20000
- i.e., socket s2 = (10.1.16.1, 20000)
- m1 (to H1)
- Queues
- q48 (LD): threshold = 100 pkts, bw = 1 Mb/s, mi = 0
- q49 (EX): threshold = 100 pkts, bw = 1 Mb/s, mi = 0
- q1: threshold = 1000 pkts, bw = m0.bw = 100 Mb/s, mi = 1
- q2: threshold = 1000 pkts, bw = m1.bw = 100 mb/s, mi = 2
- q0: not used
- VCIs
- (R1, H1, H2) = (0, 1, 2) ==> Path (x,y) uses VCI 3*x+y
- (H1, H2) uses VCI 5 = 3*1 + 2
- (R1, H1, H2) = (0, 1, 2) ==> Path (x,y) uses VCI 3*x+y
- Filters
- f1: rxmi = 1, (vci, mask) = (
User-space pkt
- Tunnel socket appears in UDP header
- VCI is first word of UDP payload
- Payload also has timestamp (for RTT and space-time diagram)
Substrate Implementation Concepts
- Physical interfaces
- Physical MIs
- Queues
- Filters
- Code option demultiplexor
- Parse, Lookup, Header Format
Slowpath Implementation
- Filters for local delivery
- User-space process
- Has VCI-MI Socket map; i.e., M : VCI --> MI Socket
- Forwards pkt to socket M(pkt.VCI)
- Artifacts
- Tunnel-aware sender and receiver
- Slice process
- spp-config-sp-vsvc-XXX.sh (slowpath) configuration scripts
- Monitoring
Fastpath Implementation
- Requires mods to Parse and Header Format
- Uses generic Lookup
- Additional artifacts
- spp-config-fp-vsvc-XXX.sh (fastpath) configuration scripts
- Monitoring
Interesting Demo
- xxx