Download presentation
Presentation is loading. Please wait.
1
April 1998, University of Pennsylvania Anna Philippou PLAN: A Programming Language for Active Networks Hicks, Kakkar, Moore, Gunter, Nettles
2
Synopsis Motivations and requirementsMotivations and requirements The languageThe language The networkThe network ImplementationImplementation Summary and conclusionsSummary and conclusions
3
Motivation Introduce programmability into the networkIntroduce programmability into the network
4
Approach Service Level programmable network routersprogrammable network routers node-resident services written in a general- purpose languagenode-resident services written in a general- purpose language authentication may be required for certain servicesauthentication may be required for certain services Packet Level programs within packets special-purpose language (PLAN) network configuration, resource discovery, no need for authentication
5
PLAN basics A language for programs carried in packets of a programmable networkA language for programs carried in packets of a programmable network PLAN programs replace the headers of packets in traditional networksPLAN programs replace the headers of packets in traditional networks Ability to call routines written in other languagesAbility to call routines written in other languages Availability guaranteesAvailability guarantees
6
Requirements FlexibilityFlexibility SafetySafety SecuritySecurity PerformancePerformance UsabilityUsability
7
The Language Functional Language in the style of ML Functional Language in the style of ML –strictly functional –strongly typed and statically typeable –lexically scoped
8
The Language However, unlike ML, However, unlike ML, –no recursion and unbounded iteration –no high-order functions –no pattern matching –monomorphic –no mutable state
9
The PLAN packet program Dest Resbound routFun definition list body
10
Remote Execution New packets are created via the PLAN-primitives:New packets are created via the PLAN-primitives: –OnRemote(prog, dest, ResB, RoutFun) –OnNeighbor(prog, dest, ResB, ()) On creation a packet is sent to its destination to be evaluated.On creation a packet is sent to its destination to be evaluated. Each hop decreases the Resource bound of a packet by one.Each hop decreases the Resource bound of a packet by one. These primitives provide data-transport.These primitives provide data-transport.
11
fun print_host(h:host, count:int) : int = print(h); print(“:”); print(count); print(“ “ ); count+1 fun ack(l:host list): unit = foldr(print_host,l,1); print(“--\n”)) fun traceroute (source:host, dest:host,l:host list, count:int):unit let val this:host = thisHost() in (OnRemote(ack(this::l),source, count, defaultRoute); if (this <> dest) then let val next:host = defaultRoute(dest) in OnNeighbor(traceroute(source, dest, this::l, count+1), next, getRB ()) end else ()) end
12
fun traceroute (source:host, dest:host, l:host list, count:int):unit let val this:host = thisHost() in (OnRemote(ack(this::l),source, count, defaultRoute); if (this <> dest) then let val next:host = defaultRoute(dest) in OnNeighbor(traceroute(source, dest, this::l, count+1), next, getRB, ()) end else ()) end
13
host application ADCB host router traceroute [ traceroute(A,D,[],1), A, n, DefaultRoute ]
14
host application ADCB host router ack traceroute out
15
host application ADCB host router ack traceroute out
16
host application ADCB host router ack traceroute out
17
host application ADCB host router ack traceroute out
18
Delivery Program fun transport(payload:blob, dest:port):unit = deliver (dest, payload)
19
The Service Level Core services (thisHost, print, defaultRoute).Core services (thisHost, print, defaultRoute). Services may change the state of a router (need for authentication).Services may change the state of a router (need for authentication). Example: a dynamic routing protocol.Example: a dynamic routing protocol.
20
Implementation Requirements:Requirements: – dynamic code loading and – portability Implementations inImplementations in –O’Caml, Java, Pizza Services are implemented in the same language as the PLAN interpreterServices are implemented in the same language as the PLAN interpreter
21
Implementation (ctd) Dynamic installation of services by passing bytecode to service installation routinesDynamic installation of services by passing bytecode to service installation routines Dynamic type checkingDynamic type checking
22
Related Work Active networks: Softnet, AIN, Active BridgeActive networks: Softnet, AIN, Active Bridge ANTS, Sprocket, TacomaANTS, Sprocket, Tacoma PLANETPLANET
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.