24
PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer and Information Science University of Pennsylvania

PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Embed Size (px)

Citation preview

Page 1: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

PLAN: Packet Language

for Active Networks

Michael Hicksjoint work with

Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles

Switchware Project Computer and Information Science

University of Pennsylvania

Page 2: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Distributed Programming

for Active Networks What is an Active Network? Why would I want one? How do I program one?

PLAN

Where can I get it?

Page 3: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Traditional Networks

R

R

R

H

H

H

H

H

Page 4: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Traditional Networks

R

R

R

H

H

H

H

H

Page 5: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Active Networks

A

A

A

A

A

A

A

A

Page 6: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Why Program the Network?

Multicast Network Searching Congestion Avoidance Web Caching Switch Diagnostics and Configuration ...

Page 7: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Can’t I do this stuff now?

In some cases, yes, but Evolution is slow Programming is tedious and error-prone

In other cases, no Many solutions require participation of all

network nodes

Page 8: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Design Goals

Flexibility IP and beyond

Security and Safety Non-interferenceResource boundingAuthentication

Performance Fast common case(data delivery)

Usability Simple InterfaceStatic guarantees

Page 9: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Design Space

Programmable Packets

DynamicallyExtensibleRouters

Endpoints only(Internet) Every hop

Where to add programmability?

Where to evaluate packets?

Page 10: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Two Level Architecture PacketLevel

ServiceLevel

Language PLAN Flexible

Code location In packet On node

Expressibility Limited General

Authentication? No When needed

Page 11: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Design Space

Programmable Packets

DynamicallyExtensibleRouters

Endpoints only(Internet) Every hop

Where to add programmability?

Where to evaluate packets?

Page 12: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Ping

A

B

Page 13: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Ping in PLAN

fun ping(source:host, dest:host):unit = if not thisHostIs(dest) then OnRemote(|ping|(source,dest), dest, … ) else OnRemote(|ack|(), source, … )

fun ack() : unit = print(“Success”)

Page 14: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

PLAN: the Language Based on simply-typed calculus Remote evaluation with OnRemote and

chunks Access to services via function calls Explicit, global resource bound Exceptions and error handling Static guarantees

Type safety Termination

Page 15: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

OnRemote

Primitive For Remote Evaluation

OnRemote(f,dest,rb,routFun) f: function to invoke remotely + args (a

chunk) dest: remote location rb: resource bound routFun: routing function name

Page 16: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Chunksalmost first-class functions

Three components: code (optional) function name actual parameters

Semantics at evaluation time: process code in fresh top-level environment resolve function name evaluate function with given parameters

Page 17: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Name Resolution

Three components: code (optional) function name actual parameters

Semantics at evaluation time: process code in fresh top-level environment resolve function name evaluate function with given parameters

Page 18: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Chunksmeans for encapsulation

fun v(c:chunk, cs:blob): unit = if verifyCS(c,cs) then eval(c)

let val c: chunk = |foo|() val d: chunk = checksum(c) in OnRemote(d,dest,getRB(),defaultRoute)end

Page 19: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

What’s Missing? Direct recursion

can fake it with OnRemote General recursive types

built-in homogeneous lists + fold Higher-order functions

can use chunks Synchronization Mutation

both may occur at the service level

Page 20: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Why not use language X?

Special domain Simple languages for simple tasks Lightweight interpretation Possible a priori guarantees

type safety memory/CPU usage termination

Page 21: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

PLANet

An Active Internetwork Based on IP but all packets are PLAN

programs RIP, ARP, etc. are service-level protocols -

communicate using PLAN programs

Page 22: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

RIP, ARP, DNS, etc. Hard parts are implemented as services

Require state Timing oriented Security

Communication occurs via PLAN Routing update broadcasts, ARP requests,

etc.

Service Level Protocols

Page 23: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Summary

Active Networks provide a richer network model faster evolution improved flexibility

PLAN embodies AN design space packet programs (PLAN) service programs (Caml)

Programming model is simple and effective

Page 24: PLAN: Packet Language for Active Networks Michael Hicks joint work with Jon Moore, Pankaj Kakkar, Carl Gunter, and Scott Nettles Switchware Project Computer

Where to get PLAN

PLAN 3.1 (and PLANet)www.cis.upenn.edu/~switchware/PLAN/ includes new security features!

SwitchWare homepage (papers and code)www.cis.upenn.edu/~switchware