Difference between revisions of "Implementing A Very Simple Protocol"
From ARL Wiki
Jump to navigationJump to searchLine 16: | Line 16: | ||
Links | Links | ||
− | * [[ | + | * [[ Overview Of The SPP Architecture ]] |
Versions | Versions | ||
Line 22: | Line 22: | ||
** VCI in first word of UDP payload | ** VCI in first word of UDP payload | ||
** VCI is globally unique | ** 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 | * 1 | ||
** VCI can change during transit as part of pkt processing | ** VCI can change during transit as part of pkt processing | ||
** Add Flow Label field | ** 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) | ||
+ | * 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 | ||
+ | * Filters | ||
+ | ** f1: rxmi = 1, (vci, mask) = ( | ||
User-space pkt | User-space pkt |
Revision as of 16:23, 1 June 2009
Very 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