senior project with the spp
DESCRIPTION
Senior Project with the SPP. Michael Williamson. Communicating with a Slice. GPE. Slice Running in VM. Slice-RMP library using a Unix Domain Socket RPC-Like Slice application calls predefined functions. User Application. VM X. To System. RMP. RMP-Slice Library. GPE. vm x. - PowerPoint PPT PresentationTRANSCRIPT
Senior Project with the Senior Project with the SPPSPPMichael Williamson
Communicating with a Communicating with a SliceSlice
Slice-RMP library using a Unix Domain Socket◦RPC-Like◦Slice application calls predefined
functions
RMPRMP-Slice
Library
User Application
Slice Running in
VM
VMX
GPE
To System
Communicating with a Slice Communicating with a Slice (cont.)(cont.)
Local Delivery and Exception Sockets◦Provides direct access to a fastpath◦Implemented using a Virtual LAN
GPE
planetlab OS
vmx
app
NPE
SRAM
TCAM
SCDcode option
FPx GPENPE
Internal Switch
What I’ve Worked OnWhat I’ve Worked OnUser Application, RMP, RMP-Slice
Library
RMPRMP-Slice
Library
User Application
Slice Running in
VM
VMX
GPE
Demonstration OverviewDemonstration Overview
Statistics GatheringLocal Delivery
Statistics InterfaceStatistics InterfaceCounters increment for certain router events
◦ Packet hitting a filterUser specifies an index and flags to return 1
of 4 counters
Packet Count
Byte Count
Packet Count
Byte CountPreQ
PostQ
Stats Array
Stats Index
Local Delivery TrafficLocal Delivery TrafficAllows the slice application to implement
custom packet processingPackets delivered via the local delivery
socket
GPE
planetlab OS
vmx
app
NPE
SRAM
TCAM
SCD
mux
FastPathx
Switch
Internet
SPP
LC
How Packets Get to the How Packets Get to the SliceSliceUser installs a local delivery filter on the
fastpathFastpath wraps all matching packets in a
“meta-net header” and forwards them to the slice
Fastpath automatically sends exception traffic to the slice’s exception socket
Type (16b)Header Length (12b)
Rx UDP DPort (2B)
0000
Rx UDP SPort (2B)
Rx IP Saddr (4B)Rx IP Daddr (4B)
Original Datagram
meta-net header
What an Application SeesWhat an Application Sees
Applications must write code to handle the meta-net header
Type (16b)Header Length (12b)
Rx UDP DPort (2B)
0000
Rx UDP SPort (2B)
Rx IP Saddr (4B)Rx IP Daddr (4B)
Original Datagram
meta-net header
Sending Packets back to the Sending Packets back to the FastpathFastpath
First of Two Options:◦ User installs a regular filter that matches packets received
on meta-interface zero◦ Application wraps packets in a meta-net header that
reflects coming from the GPE and transmits them into the LD socket
◦ Packets match meta-interface zero filter and are forwarded appropriately
Slice VM Fastpath
Local Delivery Logical Interface = Meta-interface 0
Sending Packets back to the Sending Packets back to the Fastpath (cont.)Fastpath (cont.)Second Option:
◦ User installs a “substrate-only” filter◦ Application adds a forwarding key onto the meta-
net header and transmits packets into the LD socket
◦ Fastpath does a substrate-only lookup on the forwarding key and matches the installed filter
Type (16b)Int. Hdr Length (12b)
Rx UDP DPort (2B)
Tx UDP SPort (2B)Tx UDP DPort (2B)Tx IP DAddr (4B)
0000
Rx UDP SPort (2B)
Rx IP Saddr (4B)Rx IP Daddr (4B)
meta-net header
forwarding key
Original Datagram
Why Would You Ever Use a Why Would You Ever Use a Substrate-Only Filter?Substrate-Only Filter?Allows an application to send arbitrary
packets within a flow to any location◦ Necessary to handle ICMP error messages that
must be transmitted on whatever interface the offending packet came in on
Slice VM
Fastpath
Regular Filter
Substrate-Only Filter
Dest. A
Dest. B
copt X
(10.1.1.1:40000)q1
q0 2MbpsMI1
q2
1Mbps
2Mbps
q4
q3 1MbpsMI2
4Mbps
q6
q5 1MbpsMI3
1Mbps
q7 3Mbps
BW: 5Mbps
(10.1.2.1:40001)
BW: 5Mbps
(10.1.3.1:40002)
BW: 5Mbps
q9 LDMI0
q8 Ex
Slice VM
172.16.10.2
172.16.10.1
LD and EX Tunnels
techx05
techx06
(10.1.1.2:50000)
(10.1.2.2:50001)
Share a commonphysical interface
(10.1.3.2:50002)TCAM(Filters)
0 (mi 1 -0) 1 (mi 0 - 1) 2 (mi 2 - 1) 3 (mi 1- 2) 4 (mi 1 - 3) 5 (mi 2 - 3)
Filter
ID
Key ResultImplied by
qidtype rxmi
Code Option Specific Keyaction
tunnel destinationqid
stats
indexdaddr saddr sport dport proto txdaddr txdport txmi
0 0 1 10.1.1.1 * * * * LD * * 9 0 01 1 * 10.1.1.2 * * * * fwd 10.1.1.2 50000 1 1 12 0 2 10.1.1.* * * * * fwd 10.1.1.2 50000 2 2 13 0 1 10.1.2.* * * * * fwd 10.1.2.2 50001 3 3 24 0 1 10.1.3.* * * * * fwd 10.1.3.2 50002 5 4 35 0 2 10.1.3.* * * * * fwd 10.1.3.2 50002 5 5 36 0 3 10.1.2.* * * * * fwd 10.1.2.2 5001 4 6 2
6 (mi 3 - 2)
Logical View of Demo Logical View of Demo Ping
TraceRoute
What I’ve Gained from this What I’ve Gained from this ExperienceExperienceTremendous skill set
◦Debugging ability◦Knowledge
Networking Linux Toolsets
Advanced Faster than my classmates
Thanks!Thanks!