Senior Project with the SPP Michael Williamson. Communicating with a Slice Slice-RMP library using a...

Post on 16-Dec-2015

217 views 4 download

Tags:

Transcript of Senior Project with the SPP Michael Williamson. Communicating with a Slice Slice-RMP library using a...

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!