Difference between revisions of "Implementing A Very Simple Protocol"

From ARL Wiki
Jump to navigationJump to search
Line 16: Line 16:
  
 
Links
 
Links
* [[ An Overview Of The SPP Substrate Architecture ]]
+
* [[ 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)
  • 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

  • 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