Views
OpenFlow Meeting Notes 4-6-2010
From OpenFlow Wiki
Contents |
Tags/Tunnels discussion
Rajiv Ramanathan presented more details on Tags and Tunnels. (Slides: http://openflowswitch.org/documents/OpenFlow_1_1_Tags_Tunnels_Beta_.pdf)
Comments during presentation
Summary notes (Thanks to Joe Tardo)
Rajiv presented his slide deck on Tags and Tunnels. Tunnels: Encap/decap at source/dest; transit w/outer encapsulation header. Proposal: Logical ports. - Configuration out of scope for OF. - OF just sends in/out of tunnel port Proposal: Forward to 'handle' instead of port, port group, tunnel - Ingress packets tagged w/tunnel logical port. - May also need to be tagged with physical port (Howard Green): would there be ability to send to different logical port if destination is down? (Guido): VLAN & physical as logical port? (James): Logical need not be tied to physical port (Rajiv): Example would be a loopback port (Dave Ward): 2 distinct tunnel constructs: - logical port tied to physical, determines - not tied, and another lookup neeeded (Dave): Must tunnels always be bi-directional? (Rajiv: not always) Rajiv, continuing with slides: Tags: Convey 'context' between switches (e.g., meta-data) - Use cases: MPLS, VLAN - Always process on outermost tag - Nested tags: strip and resubmit (Howard): Enable different functions... (context missed here) (Guido): Need to enable controller writer to program any switch. (Dave): Use case (for multi-tag lookup) - MPLS load balancing (Nick): Need incremental steps in right direction, should not try to be last word on everything. Bigger danger in taking on too much too soon. (Rajiv): Changes to spec: MPLS not currently supported - Propose adding MPLS label & priority - Propose push/pop/swap actions - Also: TTL decrement actions (w/. checksum recompute) - Also: resubmit action (Scott Whyte): Would really like TTL for VLAN switching (e.g., new OF functionality, add TTL tags in "OF realm") (Rajiv): Tags to enable using multiple switches to create fairly complicated table pipelines; tags convey context (Joe T.): VNtags as an instance of context for multiple tables across different switches Tags vs. Tunnels: (Guido): Can implement tunnels using tags, are there complex tunnel actions that are too comples to handle with tags? (Dan): Are tunnels a way to support complex tagging? (Howard): Temporal dimension, tunnel lives longer than a tag... (Nick): A mechanism to insert/remove/over-write arbitraty, contiguous bits would be nice, but [commodity] hardware works on specific fields. (Howard): "Real-time" configuration management protocols (Rajiv): Neither [tags nor tunnels] has anything to do with time scales. (Dan): Definition: encap/decap tunnels vs. tags that can carry semantics. But MPLS/VLAN are not tags, but tunnels. (Guido): likes definition but contradictory to everyday use, not sure how to reconcile. ... (Nick): Should separate the mechanisms from backward-compatible protocol support. (Rajiv): Define mechanisms, then validate use cases. (Dave): "Associated" bidirectional: two unidirectional paths (James): Why do we need byto? (Dave): One reason: to count together... (Jean T.): "OFPP_normal" feature of 1.0 breaks w/o bi-directional, need to learn ingress port so don't send back out. (Nick): Next week working group to come back with a revised proposal.
Detailed notes
Slide 4
- [Jean Tourrilhes] problem with controllers doing learning (eg. trunk vs physical port)
- ports useful for bidirectional
- [James Kempf] proposing diffs between logical and physical ports?
- [Rajiv Ramanathan] propose forwarding identifier -- could be logical port, physical port etc
Slide 5
- [KK Yap] if a logical port maps to a physical port (eg. 30L -> 20P), would you get a pkt in when you forward to 30L?
- [???] when you rcv pkt -- do you see decapsulated pkt? (without header)
Slide 6
- [Howard Green] do i have a way to send to a different tunnel should primary tunnel fail?
- [Howard] by whatever means -- need coupling of whatever mechanism with state (primary/secondary)
- [Jean] object to having VLAN in tunnel
- VLAN, need second stage lookup. when adding VLAN tag could go to any port that is member of VLAN
- [Guido Appenzeller] VLANs -- 5 or 1 virtual port?
- [Guido] trunk lines -- additional port per VLAN
- [Guido] can treat VLAN as tag or port?
- [James] query regarding virtual ports representing processes in the ctrl plane
- do logical ports need to be tied to physical ports?
- [David Ward] two types of tunnels:
- tied to physical port
- loopback -- need a secondary lookup to work out where to send pkt
- want physical port to be carried with pkt
- [Jean] do you need to specify logical *and* phsyical port?
- [David]
- [David] why do tunnels need to be bi-directional?
- [Jean] ctrlrs expect bi-directional ports?
- [David] can we have associated bi-directional?
Slide 8
- [James] tag is reference to MPLS standard?
- [Scott Whyte] why should there be a limitation on how many levels to look at simultaneously?
- [Howard] shouldn't we be able to look at multiple levels at the same time if the switch lets us?
- [Bob Lantz] OpenFlow 2.0 -- general match. with current MPLS/VLAN tags, restrict to outermost
- [Scott] shouldn't restrict ourselves now
- [James] most chips do 2 MPLS tags right now. if chips can do, why restrict?
- [Jean] believes 2 VLAN tags in a lookup in modern switch chips as well
- [Nick McKeown] tension between interoperability and flexibility
- want to be able to query switch to identify how many levels it can do
- [Jean] complexity of specifying match. arbitrary number of levels
- [Guido] agree with nick
- litmus test -- how hard is it to communicate capabilities?
- # tags to look into -- easy to communicate and exploit
- [David] need to look at multiple tags at once: load balancing on MPLS labels. Can consruct scenarios for 3 and 4 deep easily. 5 deep could also construct
- [Rajiv] desire to keep simple initially
- [Nick McKeown] not the last word on tagging and tunneling
- will add more later
- [David] w - query on number of levels of tags
- [Howard] believes most silicon supports two levels of tags
Slide 10
- [James/Howard] initial Ericsson version could add 2 tags
- multiple tables may allow pushing of 1 tag at a time
Slide 11
- [James] separate mechanisms for IP and MPLS?
- [Rajiv] currently thinking of a single mechanism
- [Scott] wants to be able to do TTL decrement on L2 pkts
Slide 13
- [Jean] could wildcard everything except the tag (deal with switches with small flow tables)
- [Guido] imagine edge switches and core switches (identical)
- not enough state in core
- use tags
- [Joe Tardo]
- [David] various tunnels technologies. some can carry tags
- anything that can encapsulate is a tunnel
- anything that put semantics on pkt is a tag
- [Howard] orthogonal - difference between MPLS tunnels vs tags?
- MPLS - need to create an MPLS cross-connect in each intermediate switch
- [Guido] tunnel vs tag is local to switch
- one switch can treat something as a tunnel, another can treat it as a tag
- [Rajiv] difference is how these are set up
- [Dan Talayco] trying to identify list of tags we want to support
- or do we want to provide a general mechanism?
- are tunnels how we represent more complicated things
- [James] not supporting OAM right now -- understands concerns
- need to provide a way to allow switches to do those things
- tunnels live long enough that we can set attributes
- [Nick] if piece of h/w has ability to insert/remove anywhere in pkt a set of bits + ability to overwrite set of bits... this covers everything we need to do
- practical problem of how to build and if we want to?
- dan's point - would be great if it existed today
- practical point
- what is mechanism to write in most general form?
- sends message to ppl building chips
- [Christos Kolias] tunnels vs tags -- atm networks.
- [Paulie Germano]
- [Howard] problem of overlap between different protocols - eg. realtime requirements
- [Rajiv] doesn't have anything to do with timeframes
- [Jean] configuration of tunnels are done via another protocol...
- [James] OpenFlow deals exclusively with flow table. config deals with everything around it
- [David] could have a tag where at midpoints we only care about certain bits -- only those bits have semantics at that point
- [Howard] created this thing called a tunnel is because we want to punt to another protocol
- [Scott] going through these mechanisms because you can't have a single table
- encap -- to prefilter what needs to be in the fib
- next: focus on mechs. know these mechs exist. implement the ones we need. until hardware catches up
- [Nick] up till 1.0, distinciton between mech and protocols has not been particularly comlicated. spec hasnt done a good job of separating
- mechanisms - add a tag, remove a tag etc.
- pragmatic reasons - in 1.1 need to support particular formats
- [Howard]
- [Paulie] question of what has semantics on switch-to-switch basis
- [David] can we add into spec whether we want something to be unidirectional, bidirectional, or associated bidirectional?
- [Howard]
- [Nick] why does switch need to know direction
- [David]
- [David] allow ability to create bidi tunnels
- [Jean] problem of ofpp_normal
