OpenFlow Meeting Notes 4-6-2010

From OpenFlow Wiki

Jump to: navigation, search

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:
  1. tied to physical port
  2. 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