platform-independent wireless device reconfiguration what can we learn from sdn? anything we may...

44
Giuseppe Bianchi Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN? Giuseppe Bianchi CNIT / University of Roma Tor Vergata Credits to: Wireless MAC processor I. Tinnirello, P. Gallo, D. Garlisi, F. Giuliano, F. Gringoli Openstate M. Bonola, A. Capone, C. Cascone

Upload: merrill

Post on 25-Feb-2016

18 views

Category:

Documents


0 download

DESCRIPTION

Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN? . Giuseppe Bianchi CNIT / University of Roma Tor Vergata Credits to: Wireless MAC processor  I. Tinnirello , P. Gallo, D. Garlisi , F. Giuliano, F. Gringoli - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Platform-independent Wireless Device ReconfigurationWhat can we learn from SDN?

Anything we may hand back to SDN? Giuseppe Bianchi

CNIT / University of Roma Tor Vergata

Credits to: Wireless MAC processor I. Tinnirello, P. Gallo, D. Garlisi, F. Giuliano, F. GringoliOpenstate M. Bonola, A. Capone, C. Cascone

Page 2: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Software-Defined Radiofrom radios with behavior fixed in

hardware to radios with behavior determined by software

20+ years long research path; excellent technologiesAirBlue, CalRadio, GNURadio, RUNIC, SORA, USRP,

WARP, …

So far, niche exploitationE.g. militaryBut commercial transition seems now here

Page 3: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Software-Defined RadioUnfortunately… [quoting Partridge, 2011]

… [we] are all imperfectly prepared to take advantage.

Research on vital questions has been extremely variablewith wonderful work (such as finding the right mix of programmable

hardware to support high performance signal processing in radios)undermined by almost complete neglect - such as how to

describe radio behavior independent of platform […].

C. Partridge, Realizing the future of Wireless Data communication, 2011

Page 4: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Meanwhile, standards & vendors …

One-size-fits-all protocolsE.g. 802.11 WLANPacking as many amendments as possible into one protocol

802.11e QoS, 802.11p vehicular, 802.11s mesh, 802.11v mgmt, 802.11z direct link enhancements, 802.11aa multimedia, 802.11ae QoS mgmt, 802.11ah M2M, etc

Rationale: must fit several largely different contexts and scenarios

Aftermath: years to finalize, backward compatibility, compromises, …

Page 5: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

One size hardly fits allcontext matters!

Dynamic spectrum accessVery diverse situations (e.g. countries) very diverse environmental conditions

» Dense/sparse, hidden terminals, legacy deployments, etcDifferent propagation characteristics

» Sub-GHz, THzNiche environments with specific needs

home, industrial, M2M, …Adaptation to specific context or applications

Virtualization, access network sharingMulti-tenancyMultiple coexisting applications

» M2M and H2H over same access network…And many more…

Diverse needs diverse design!

Page 6: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Everything would be much easier if…

Please Install this radio protocol stack

Whole radio protocol stack as a sort of JAVA applet

Hello, may I associate?

[using a legacy protocol, e.g. DCF]

Monitor and detect Context changes (interf., traffic, hidden nodes, neighbors, etc)

Here’s a new context specific protocol stack! Let’s reconfigure

terminals to best fit new condition

How to make this vision come true? Either a platform-agnostic radio programming language, or… all devices of the same vendor…

Page 7: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Multi-tenancy would become trivial

Operator A Operator B

Custom

stack

A Custom stack B

Change of context conditions Change of context conditions

Page 8: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

For instance: MAC protocols’ time slicing

Time «slice» dedicated to OPA, best effort traffic chooses DCF-like

trivial idea, isolation guaranteed, any (custom) MAC protocol in any tenant’ slice…but today hard to implement (and non standard)

Time «slice» dedicated to OPA, guaranteed traffic chooses TDM-like

Page 9: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

In the mean time, in another (wired) galaxy…

The rise of Software Defined NetworkingOpenFlow, 2008SDN, 2010Market hype, 2012

Almost 2 B$ SDN companies acquisition» Mainly Nicira, but also Contrail, Big Switch, Cariden,

Vyatta, …

Compare timing and $$$ with SDR take up…

Page 10: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Why SDN = $$$SDN: programmable central control of

network operation and trafficOpen, vendor-netural, APIs

Northbound, southbound (mainly OpenFlow)Easy and fast deployment and innovation

PacketForwarding

PacketForwarding

PacketForwarding

Device-level, standard-based, interface – southbound API

Controller

Data plane

Net «app»

Net «app»

Net «OS»Network-wide, standard-based, interface – northbound API

Page 11: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Which SDN breakthrough? Control/data plane separation?

Nah…A key feature, but not nearly new

Well established in POTS, SNMP, etcVery well established in wireless as well

» Entrerprise WLAN, CAPWAP since 2003, …

SDN real breakthrough: viable vendor-neutral programming abstractions!

Node behavior

Description(formal)

Network Entity

e.g. Switch

Any vendor, any size, any HW/SW platform…

Page 12: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

OpenFlow: a compromise[original quotes: from OF 2008 paper]

Best approach: “persuade commercial name-brand equipment vendors to provide an open, programmable, virtualized platform on their switches and routers”Plainly speaking: open the box!! No

way…

Viable approach: “compromise on generality and seek a degree of switch flexibility that isHigh performance and low costCapable of supporting a broad range of

researchConsistent with vendors’ need for

closed platforms.A successful compromise, indeed… ask Nicira …

Page 13: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

OpenFlow: just one abstraction

good for switches, not for «all»

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

MatchingRule Action

1. FORWARD TO PORT2. ENCAPSULATE&FORWARD3. DROP4. …Extensible

Vendor-implementedProgrammabile logic

Pre-implemented matching engine

Page 14: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Back to the wireless galaxy…

Research stuck to the “best approach”: “persuade commercial name-brand equipment vendors to provide a same open programmable platform on their Wireless NICs”Plainly speaking: let’s all use, e.g., WARP!! No way…

Viable approach: “compromise on generality and seek a degree of Wireless NIC flexibility that isHigh performance and low costCapable of supporting a broad range of researchConsistent with vendors’ need for closed

platforms.

But which «right compromise»? Describing a wireless device behavior is NOT

as «easy» as abstracting a flow table…

Page 15: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Let’s focus on MAC protocolsOur work

Infocom 2012, Context 2012, Wintech 2013

Simpler to address than «full» SDR, but already not nearly trivial

How to provide a platform-agnostic description of MAC protocols whichDoes not require open source devicesStill permits to operate at ms time scales

Must run in the (closed source) NIC…

Page 16: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Learn from computing systems? 1: Instruction sets

perform elementary tasks on the platformA-priori given by the platformCan be VERY rich in special purpose computing platforms

» Crypto accelerators, GPUs, DSPs, etc

2: Programming languages sequence of such instructions + conditionsConvey desired platform’s operation or algorithm

3: Central Processing Unit (CPU)execute program over the platformUnaware of what the program specifically doesFetch/invoke instructions, update registers, etc

Clear decoupling between: - platform’s vendor implements (closed source!) instruction set & CPU - programmer produces SW code in given language

Let’s MIMIC all this!

Page 17: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

ACTIONS frame management, radio control, time scheduling

TX frame, set PHY params, RX frame, set timer, freeze counter, build header, forge frame, switch channel, etc

EVENTSavailable HW/SW signals/interrupts

Busy channel signal, RX indication, inqueued frame, end timer, etc

CONDITIONSboolean/arithmetic tests on available registers/info

Frame address == X, queue length >0, ACK received, power level < P, etc

1: Which elementary MAC tasks?(“our” instruction set!)

Page 18: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Just “one” possible API convenient on our commodity platform

“others” possible as well improved/extended tailored to more capable radio HW

Our point, so far: have a specified set of actions/events/conditions, not “which” specific one)

Implemented APIPlatform: Broadcom Airforce54g commodity card

Page 19: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Convenient “language”: XFSMeXtended Finite State MachinesCompact way for composing available acts/ev/cond

to form a custom MAC protocol logic

2: How to compose MAC tasks?(“our” programming language!)

Origin state Destination

stateconfig action()

Destinationstate

EVENT(condition)Action()

Destinationstate

Page 20: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Actions:set_timer, stop_timer, set_backoff, resume_backoff, update_cw, switch_TX, TX_start

Events:END_TIMER, QUEUE_OUT_UP, CH_DOWN, CH_UP, END_BK, MED_DATA_CONF

Conditions:medium, backoff, queue

XFSM example: legacy DCFsimplified for graphical convenience

Page 21: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

MAC engine: specialized XFSM executor (unaware of MAC logic)Fetch stateReceive eventsVerify conditionsPerform actions and state transition

Once-for-all implemented in NIC (no need for open source)“close” to radio resources = straightforward real-time

handlingDifferent MAC protocol = different “XFSM program”!

3: How to run a MAC program? (MAC engine – XFSM onboard executor - our CPU!)

Page 22: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Is this viable? Implemented on an ultra-cheap commodity WLAN NIC

Real world card: Broadcom Airforce54g 4311/4318 Poor resources: general purpose processor (88 MHz),

4KB data memory, 32 KB code memory More recently, also implemented on WARP (but this was not a challenge!)

Implementation at a glance: Original 802.11 firmware deleted (we do NOT want yet

another firmware MAC to hack!) Replaced with [once for all developed in assembly language]:

Implementation of actions, events, conditions in part reusing existing HW facilities:

» HW configuration registers for radio resource and event handling» Frequency, power, channel sensing, frame forging facilities, etc» Available HW events (packet queued, plcp end, rx end, rx correct frame, crc failure, timer

expiration, carrier sense, etc) MAC engine: XFSM executor Several annoyting technical hurdles addressed (e.g. lack of support of interrupt handling)

Developed “machine language” for MAC engine

Page 23: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

MAC Programs MAC description:

XFSM

XFSM tables

Transitions«byte»-code event, condition, action

Portable over different vendors’ devices, as long as API is the same!!

Pack & optimize in WMP «machine-language» bytecode

A

C

B

T(A,B)T(B,C)

T(C,A) T(C,B)

ABC

A B C

T(A,B)T(B,C)T(C,A) T(C,B)

ABC

MAC protocol specification:XFSM design

(e.g. Eclipse GMF)

Machine-readable code

Custom language compiler

Code injection in radio HW platform

MAC Engine

MAC Bytecode

Page 24: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Machine Language Example (DCF, 544 bytes)

Page 25: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Wireless MAC Processor: Overall architecture

MAC Engine: XFSM executor

Memory blocks: data, prog

Registers: save system state (conditions);

Interrupts block passing HW signals to Engine (events);

Operations invoked by the engine for driving the hardware (actions)

Page 26: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

From MAC Programs to MAClets

Upload MAC program on NIC from remoteWhile another MAC is runningEmbed code in ordinary packets

WMP Control Primitives load(XFSM) run(XFSM)verify(XFSM)switch(XFSM1, XFSM2, ev,

cond) Further primitives

Synchro support for distributed start of same MAC operation

Distribution protocol

“Bios” state machine: DEFAULT protocol (e.g. wifi) which all terminals understand

Page 27: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Multi-threaded MACSeamless switch from one MAC program to another in negligible time

less than 0.2 us over such cheap hardware!(plus channel switching time if required)

Page 28: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

AP Virtualization with MAClets

Two operators on same AP/infrastructureA: wants TDM, fixed rateB: wants best effort DCF

Trivial with MAClets!Customers of A/B download

respective TDM/DCF MAClets! Isolation via MAClet design

Time slicing DESIGNED INTO the MAClets! (static or dynamic)

DCF SUSPEND

Timer expiration

Beacon reception & conversely

Page 29: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Controller’s architectureused OMF as SDN controller…

(!)Measurement processCollects statistics for context estimationResource ControllerManages device (load, control)

Experiment ControllerNetwork-wide orchestration

Page 30: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Public-domain Supported by the FLAVIA EU FP7 project

http://www.ict-flavia.eu/ Ongoing integration in the CREW EU FP7 federated testbed

http://www.ict-flavia.eu/

Public domain release Project page: http://wmp.tti.unipa.it Download: https://github.com/ict-flavia/Wireless-MAC-Processor Developer team:

[email protected] [email protected] [email protected] [email protected]

Released distribution: Binary image for WMP You DO NOT need it open source!

Remember the “hard-coded” device philosophy… Conveniently mounted and run on Linksis or Alix

Source code for everything else Manual & documentation, sample programs

Page 31: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Back again to the wired galaxy…Aftermath: XFSM as a very

appropriate abstraction for wireless MAC protocols’ programming

Openflow: compromise, which permits «only» to program stateless flow tables

Crazy idea? OpenFlow + XFSM?

Page 32: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

OF’s remote intelligence…

Network OS

Controller Application(smart = states)

Events from switchesTopology changes,Traffic statistics,Arriving packets

Commands to switches(Un)install rules,Query statistics,Send packets

Forwarding device (dumb)

Winning SDN idea for network-wide states and «big picture» decisions

Poor idea for local states/decision, (way!) better handled locally

(less delay, less signalling load)

The real cause: OF does not permit to «program» stateful rule changes (remember, OF was a compromise)

Page 33: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Example: how you’d implement an OF port

knocking firewall? knock «code»: 5123, 6234, 7345, 8456

IPsrc=1.2.3.4

Port=5123

Flow 1.2.3.4: encapsulate & forward

DROP

controller

Port 5123? Store state,1° knock OK

Page 34: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Example: how you’d implement an OF port

knocking firewall? knock «code»: 5123, 6234, 7345, 8456

IPsrc=1.2.3.4

Port=6234

Flow 1.2.3.4: encapsulate & forward

DROP

controller

Port 6234? Store state,2° knock OK

Page 35: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Example: how you’d implement an OF port

knocking firewall? knock «code»: 5123, 6234, 7345, 8456

IPsrc=1.2.3.4

Port=7345

Flow 1.2.3.4: encapsulate & forward

DROP

controller

Port 7345? Store state,3° knock OK

Page 36: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Example: how you’d implement an OF port

knocking firewall? knock «code»: 5123, 6234, 7345, 8456

IPsrc=1.2.3.4

Port=8456

Flow 1.2.3.4: encapsulate & forward

DROP

controller

Port 8456? Store state,OPEN

Add flow entry for 1.2.3.4:22

Page 37: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Example: how you’d implement an OF port

knocking firewall? knock «code»: 5123, 6234, 7345, 8456

IPsrc=any Port=anyDROP

controller

ALL packets of ALL flowsMust be forwarded to controller!!Until flow entry installed!

Page 38: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Controller implementation for port knocking: Mealy

Machine(simpler form of XFSM)

DEFAULT

Stage 1

Stage 2

Stage 3 OPEN

Port=6234Drop()

Port!=6234Drop()

Port!=5123Drop()

Port=5123Drop()

Port=7345Drop()

Port=8456Drop()

Port!=7345Drop()

Port!=8456Drop()

Port=22Forward()

Port!=22Drop()

1 state machine for all flows (same knocking sequence)N states, one per (active) flow

Page 39: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Can transform in a flow table? Yes!

state eventDEFAULTSTAGE-1

Port=5123Port=6234

STAGE-2STAGE-3

Port=7345Port=8456

OPEN Port=22OPEN

*Port=*Port=*

Match fields Actionsaction Next-statedropdrop

STAGE-1STAGE-2

dropdrop

STAGE-3OPEN

forward OPENdropdrop

OPENDEFAULT

Metadata (any bit string)

Header field(port #)

If next state were an OF instruction, this would be a STANDARD OF1.3+ flow table! TCAM implementation

Page 40: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

And what about flow states?

Flow key stateIPsrc= … …Ipsrc= … …

… … …… … …

IPsrc=1.2.3.4IPsrc=5.6.7.8

STAGE-3OPEN

IPsrc= no match DEFAULTIPsrc= … … … … …

Just a (Hash) Table, e.g. dleft/cuckoo hashNo need for TCAM (though useful extension for static matches)

Page 41: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Putting all togetherIPsrc=1.2.3.4

Flow key stateIPsrc= … …Ipsrc= … …

… … …… … …

IPsrc=1.2.3.4IPsrc=5.6.7.8

STAGE-3OPEN

IPsrc= no match DEFAULTIPsrc= … …

State Table

… … …

Port=8456

state eventDEFAULTSTAGE-1

Port=5123Port=6234

STAGE-2STAGE-3

Port=7345Port=8456

OPEN Port=22OPEN

*Port=*Port=*

XFSM TableMatch fields Actions

action Next-statedropdrop

STAGE-1STAGE-2

dropdrop

STAGE-3OPEN

forward OPENdropdrop

OPENDEFAULT

IPsrc=1.2.3.4 Port=8456 STAGE-3

OPENFlow key state

IPsrc= … …Ipsrc= … …

… … …… … …

IPsrc=1.2.3.4IPsrc=5.6.7.8

Write:OPENOPEN

IPsrc= no match DEFAULTIPsrc= … …

State Table

… … …

IPsrc=1.2.3.4 Port=8456

1) State lookup

2) XFSM state transition

3) State update

Page 42: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Cross-flow state handling

MACdst MACsrcFlow key state

48 bit MAC addr Port #lookup

State Table

MACdst MACsrcFlow key state

48 bit MAC addr Port #update

State Table

state eventPort# *

action Next-stateforward In-port

XFSM Table

DIFFERENT lookup/update scope

Field 1 Field 2 Field N

Flowkey selector Read/write signal

Yes but what about MAC learning, multi-port protocols (e.g., FTP), bidirectional flow handling, etc?

Page 43: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Aftermath: a nice surprise! OpenFlow can support states and state transitions!

With marginal modifications! See Openstate, ACM CCR, April 2014

Bringing control back inside the switchAt wire speedVia platform independent abstractionA new perspective towards SDN control/data plane separation?

» Controller DECIDES, but switch can now ENFORCE! A lot faster!

Proof of concept implementationsSoftware: O(days) on SoftSwitch (OFv1.3)Hardware: in progress, first prototype at 10 Gbps without any problems

Reuses existing commodity hardware!

Extensions: bidirectional flow handling!Example: to implement learning MAC

Page 44: Platform-independent Wireless Device Reconfiguration What can we learn from SDN? Anything we may hand back to SDN?

Giuseppe Bianchi

Conclusions Finite state machines: «the» programming abstraction for network

devices?Wireless AND wired!

Plenty of new research directions in wirelessHow to platform-agnostic program wireless PHY and cross-layer?How to exploit programmable devices in the cognitive control loop?

We focuses so far on the «act» phase of the cognitive loop: how and when to decide MAC protocol reconfiguration?

And in OpenFlow as wellSo far proof of concept for Mealy Machines only

Can we move towards «full» XFSM?Network switch = generic computing device?

And new directions in SDN, as wellWhat does control/data plane separation really means?