Presentation is loading. Please wait.

Presentation is loading. Please wait.

April 1998, University of Pennsylvania Anna Philippou PLAN: A Programming Language for Active Networks Hicks, Kakkar, Moore, Gunter, Nettles.

Similar presentations


Presentation on theme: "April 1998, University of Pennsylvania Anna Philippou PLAN: A Programming Language for Active Networks Hicks, Kakkar, Moore, Gunter, Nettles."— Presentation transcript:

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


Download ppt "April 1998, University of Pennsylvania Anna Philippou PLAN: A Programming Language for Active Networks Hicks, Kakkar, Moore, Gunter, Nettles."

Similar presentations


Ads by Google