[ovs-dev] [PATCH] Fix packet-in reason for OpenFlow1.3 table-miss flow entries
Ben Pfaff
blp at nicira.com
Fri Oct 18 04:44:42 UTC 2013
On Fri, Oct 18, 2013 at 01:41:20PM +0900, YAMAMOTO Takashi wrote:
> >> On Thu, Oct 17, 2013 at 02:11:00PM +0900, YAMAMOTO Takashi wrote:
> >>> > On Wed, Oct 16, 2013 at 05:24:36PM +0900, YAMAMOTO Takashi wrote:
> >>> >> As per spec, make packet-in reason for OpenFlow1.3 table-miss flow
> >>> >> entries no_match rather than action.
> >>> >>
> >>> >> Signed-off-by: YAMAMOTO Takashi <yamamoto at valinux.co.jp>
> >>> >
> >>> > Thanks! I really appreciate that you are working on conformance to
> >>> > later OpenFlow specs.
> >>> >
> >>> > Before I apply this, let me propose a different idea. I think that your
> >>> > approach is valid and will work, but it seems to me that it relies on
> >>> > the ofproto-provider implementation keeping track of where the packet-in
> >>> > came from. Another way would be to notice, when we decode the flow_mod
> >>> > that adds the flow to the flow table, that the flow_mod is for a
> >>> > catch-all flow, and then mark any packet_in ofpacts in the flow_mod as
> >>> > ones that should generate table_miss messages. Then the
> >>> > ofproto-provider would not have to do anything special, beyond properly
> >>> > passing along a value from the ofpact.
> >>> >
> >>> > What do you think?
> >>>
> >>> do you mean:
> >>> - add "reason" member to struct ofpact_output (as ofpact_controller)
> >>> - make ofputil_decode_flow_mod fill it
> >>>
> >>> i have no strong opinion. if you prefer it, i will try to implement it.
> >>
> >> Yes, that's what I mean. I would prefer to try it this way. If it is
> >> ugly or infeasible, then the code you have already written makes sense.
> >
> > ok, i'll try.
>
> i posted another version which implements the way you suggested.
>
> btw, the use of pin.reason to determine which of max_len (pin.send_len)
> or miss_send_len to use seems broken for NX CONTROLLER action, which
> seems to allow a user to specify a reason. while i'm ignorant of NX
> spec (is it publically available?), i guess it's necessary to have
> pin.real_reason or something like that.
NX spec? There is no spec beyond what is in nicira-ext.h. There's
nothing private we're holding back.
(I'll read the patch and figure out the desired behavior here later, but
I thought I should respond to that part right away.)
More information about the dev
mailing list