Defining Flow Forwarding Instead of Switch or Routing

Fundamentals – Switching, Routing, Flow Forwarding

Just a quick recap on some fundamentals. In the past, bridging was connecting to Layer 2 network segments together in a scalable. In my recent webinar on Introducing SDN & OpenFlow I talked around whether the use of SDN/OpenFlow is actually Routing or Switching.

Today, I would make the case that

  • Switching = forwarding by destination MAC
  • Routing = forwarding by destination IP
  • Forwarding = Forwarding by Flow.

Following a Switch Path

To demonstrate this consider an Ethernet frame being switched between just two switches.

  1. Frame is received on an access port, MAC address table is checked and updated as necessary.
  2. Lookup on the MAC forwarding table.
  3. Frame has VLAN trunk tag insert because it’s a trunk port.
  4. Frame received by switch, tag and MAC address table is checked and updated as necessary
  5. Lookup on the MAC forwarding table.
  6. Forward the frame output port.

Is openflow open 3

Following a Forwarding Path

  1. Frame match with the Flow Table and dispatched to output
  2. Inbound frame matched with flow table and dispatched to output.

Is openflow open 4

Flow Forwarding

The fundamentals definition of configuring network paths using Flow Tables in the Forwarding Information Base is neither switching or routing. Because frames and packets are forwarded on Flow Tables is call this Flow Forwarding

Is openflow open 1

Hereafter, I will use the term Flow Forwarding. Or just simply Forwarding instead of Switching or Routing.

You could equally use the terms Switch Forwarding when at Layer 2, and Route Forwarding at Layer but this seems cumbersome to me. Smarter people than me will probably come up with better names.

I’m sure Ivan Pepelnjak has an opinion on this

About Greg Ferro

Greg Ferro is a Network Engineer/Architect, mostly focussed on Data Centre, Security Infrastructure, and recently Virtualization. He has over 20 years in IT, in wide range of employers working as a freelance consultant including Finance, Service Providers and Online Companies. He is CCIE#6920 and has a few ideas about the world, but not enough to really count.

He is a host on the Packet Pushers Podcast, blogger at EtherealMind.com and on Twitter @etherealmind and Google Plus

  • Mike Kantowski

    Nice, Greg.  And, although it’s obvious when talking about flow forwarding, how we define what a “flow” is comprised of is a point of interest.  You can be very broad (such as a flow is defined by the destination IP address… sorta like traditional routing) or you can be more granular, like a flow is defined by things like source/destination IP/port pairs, etc…

    But how do you establish the information in the FIB?  Does a lower level decision get made first (like destination MAC address switching so the “flow” can even start up promptly and correctly) then additional flow information is pulled and populated in the FIB?  Once you have flows defined and flow information populated in the FIB, then your global flow policies can take effect, such as “if the output queue of this link reaches a certain depth, then begin to shed certain flow(s) out some other interface.”  The new network engineers will be good at creating rules like this that make sense in their own environments.  Of course, there will always be the steadfast “best practices” we can always rely on, right?

    • http://etherealmind.com Greg Ferro

      “The future is already here — it’s just not very evenly distributed.” – William Gibson

      -grin-

  • Old Guy

    Listened to your recent webinar on SDN and OpenFlow. It was very good, thank you.

    Question, Why are you calling L2 MAC forwarding switching?  Several decades ago we did one of 3 things to a packet, repeated it (frame was not touched), Bridged it (L2 MAC forwarding), or Routed it (L3 forwarding followed by L2 forwarding).  The term switch is a “marketing” term that really just talks about a multiport Bridge in my opinion, and we have had those for many, many years.

    What changes to the Ethernet headers at L2 happen with flow forwarding on a hop by hop basis?  If I put my trusty Sniffer on the wire, what will I see different from an Ethernet standpoint?  The DST MAC address will have to be changed before it gets to it’s final home doesn’t it?

    What am I missing here? 
    Any examples at that level you can share?

    Thanks,
    Matt

  • http://twitter.com/chris_marino Chris Marino

    Hey Greg, sorry I missed the webinar. Hoping to catch it in an archive sometime maybe….

    I think it might be helpful to illustrate your point with a slightly more complex example. One where the path is not determined via STP. That way the path could be different for Switching and Forwarding, which is where the tremendous value begins to emerge.

    My $0.02

  • http://twitter.com/cjinfantino CJ Infantino

    So, I wonder, do you consider label switching as forwarding – since MPLS is using labels instead of MACs?

    • http://etherealmind.com Etherealmind

      Yes. In 1999 Cisco was calling it “Tag Forwarding” before it became the MPLS. Terms like FEC for Forwarding Equivalent Class are part of the lingo.