Hi Dan,

Thanks for the reply. It does clear up some confusion. The IP centric 
understanding of LOCAL action is what I inferred from an earlier thread:
https://mailman.stanford.edu/pipermail/openflow-discuss/2011-April/002082.html

I too feel that NORMAL is not that well defined in the spec, at least not in 
terms of how a switch should behave. As a controller, when you program a LOCAL 
or NORMAL action, what are your expectations? If you program LOCAL Action for a 
pkt that would've been forwarded normally, what do you expect switch to do? 
Note that when I say switch I mean a hybrid switch.

1. Drop pkt.
2. Fwd pkt.
3. Throw error and not let you add that flow.

I am just trying to figure out possibility of overlap between LOCAL/NORMAL and 
if there is any clarity on the same.

In case of configuration aware network with NORMAL being used as alternative to 
packet_in, for some packets NORMAL action could result in same behavior as if 
it were programmed with LOCAL action. Acceptable?

- Vishal Thapar.


-----Original Message-----
From: Dan Talayco [mailto:[email protected]] 
Sent: Tuesday, October 11, 2011 10:03 PM
To: Thapar, Vishal
Cc: [email protected]
Subject: Re: [openflow-discuss] Clarification about NORMAL and LOCAL action

 While I might get some pushback (hopefully I will) for saying this, I would 
argue that NORMAL is not that well defined; at least, it is highly 
implementation dependent. 

LOCAL is pretty well defined since in all implementations there is some agent 
that is processing OpenFlow messages and the implication of LOCAL is that that 
agent has an interface into the data plane.  LOCAL means send the packet in 
question to that interface.  One note here, you write:
> while LOCAL for packets with switch IP as their destination IP, right?
Although this would be a common use case, there is no restriction on what 
packets might have LOCAL applied.  OpenFlow gets the packet to the 
aforementioned interface and once there, what happens will depend on that 
interface's configuration.  (For example, the interface could be in a 
promiscuous mode and the packet dumped by tcpdump.)

NORMAL implies that there is some "non OpenFlow" processing.  But by the fact 
that it is non-OpenFlow, what this means is out of scope for the OpenFlow spec. 
 The term "hybrid" has been used to broadly categorize the integration of 
OpenFlow with other functionality.  A hybrid switch which supported routing 
might do something very different than a hybrid switch that only supported L2 
functions.  

In either case, the configuration of those non-OpenFlow functions will be 
outside of OpenFlow protocol; a completely generic OpenFlow controller should 
not make any assumptions about what would happen to packets to which NORMAL was 
applied.  However an "integrated" controller (one that had device specific 
information about the non-OpenFlow capabilities and configuration of the 
devices on the network) could use NORMAL more intelligently.

That being said, in deployments where there is some knowledge about the 
configuration of the devices in the network (maybe there's the convention that 
all the devices have L2 learning enabled and L3 disabled), NORMAL could be used 
as an alternative to "packet-in" as the default action (with the obvious 
trade-offs).

Hope this helps.

-Dan



On Tuesday, October 11, 2011 at 3:51 AM, Thapar, Vishal wrote:

> Hi,
> 
> I have some confusion regarding difference between LOCAL and NORMAL action. 
> My [current] understanding is LOCAL refers to host's TCP/IP stack while 
> NORMAL states "Process packets using traditional non-Openflow Pipeline of the 
> switch".
> 
> What I understand from it is that NORMAL action should only be used for 
> packets passing through switch while LOCAL for packets with switch IP as 
> their destination IP, right?
> 
> Now, my question is, what if I setup specify NORMAL action for a packet that 
> would've normally gone to the switch host stack? Conversely, what if I 
> specify LOCAL action for a packet which wasn't destined for switch? What 
> about packets destined for switch but not IP packets, like say, UDLD packets?
> 
> I initially thought NORMAL was a superset of LOCAL and meant "fwd or send to 
> host stack", but spec seems to restrict NORMAL to just forwarding pipeline 
> and make NORMAL/LOCAL apply to mutually exclusive scenarios.
> 
> Regards,
> Vishal Thapar.
> _______________________________________________
> openflow-discuss mailing list
> [email protected] 
> (mailto:[email protected])
> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss


_______________________________________________
openflow-discuss mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to