On Mon, Jul 15, 2013 at 6:00 PM, Justin Pettit <jpet...@nicira.com> wrote:
>
> On Jul 15, 2013, at 2:14 PM, Jesse Gross <je...@nicira.com> wrote:
>
>> On Mon, Jul 15, 2013 at 11:06 AM, Ben Pfaff <b...@nicira.com> wrote:
>>>    * I am not sure that set_arp() is called in a context where there is
>>>      guaranteed to be a full Ethernet+IP ARP header present in the packet,
>>>      given megaflows.
>>
>> This is a larger problem with all actions that I had mentioned before
>> but it slipped through the cracks.
>>
>> I think the correct solution here is to have the kernel reject flows
>> that might not be safe (i.e. you can't modify a TCP header if there
>> isn't an exact match on the IP protocol). This is pretty easy to do
>> (just use the masked flow for validation) and consistent with how
>> things are done elsewhere.
>>
>> However, from an OpenFlow perspective we've traditionally allowed such
>> a flow but just trimmed out these actions during flow setup. I believe
>> that this will continue to work OK because we need to unmask fields in
>> order to generate a set action, so we should both satisfy the kernel's
>> dependency requirements and be able to do the trimming. Justin, do you
>> agree?
>
> Yes.  The code for the set actions un-wildcards the IP proto (and the 
> ethertype is always un-wildcarded).  For the generic set action, the NXM code 
> should enforce prerequisites, which will then be un-wildcarded as well.  If 
> there are cases where this doesn't happen, I would consider them bugs in 
> userspace.

OK, thanks. I'll send out a patch to enforce this in the kernel.
X-CudaMail-Whitelist-To: dev@openvswitch.org
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to