[ovs-discuss] ovs-ofctl doesn't talk proper OF 1.2

Torbjorn Tornkvist kruskakli at gmail.com
Thu Sep 12 06:47:18 UTC 2013


On 9/11/13 6:32 PM, Ben Pfaff wrote:
> On Wed, Sep 11, 2013 at 03:51:51PM +0200, Torbjorn Tornkvist wrote:
>> I'm implementing the OF 1.2 protocol and was trying to set an
>> ipv4-src address in an action.
>> It seems however that OVS (1.11) dosn't talk proper OF 1.2.
> OpenFlow 1.1 and later support is experimental.  Thanks for trying it
> out and reporting a problem.
>
>> Have a look at two wireshark sessions at:
>>
>>    http://picpaste.com/pics/of-1.2-CqqrPKPw.1378906446.png
> That picture is almost unreadably fuzzy because it is an 1852 x 1113
> image scaled down to 640 x 384.  If you post screenshots, please make
> sure them readable.
But if you click on the picture it should expand in your browser.
It does so in Chrome on both Ubuntu and Mac and I'm even able to
get a clear picture in my mobile phone.
>
>> The left window is me talking 1.2 and the right window is the result
>> of this command:
>>
>>    ovs-ofctl  --protocol=OpenFlow12 add-flow 'tcp:192.168.1.120:6633
>> lsw' 'in_port=1,dl_src=86:d7:3c:a1:bb:d5,dl_type=0x8000
>> actions=mod_nw_src:192.168.111.111'
> "lsw"?
The name of my bridge (Learning SWitch).
>
>> Look at the Action Type!
> I'm looking at it.  It looks like a bunch of fuzz.  It *might* say 00 10
> on the left and 00 05 on the right.  Oh, I guess that "set-field" is 25
> so that must be 00 19 on the left.
>
>> Is it a bug? Is it intentional? or what?
> OpenFlow 1.1 uses action 5 to mean OFPAT_SET_NW_SRC.
>
> OpenFlow 1.2 action numbering is backward-compatible with OpenFlow 1.1,
> so presumably it means that same thing in OpenFlow 1.2.
Not sure about that.
Enclosed in the set-field is a "single OXM TLV", where:

   OFPXMT_OFB_IPV4_SRC = 11

>
> I guess the point you're trying to make is that OVS should translate
> mod_nw_src into set_field for OF1.2?  That's reasonable; I'll make a
> note.
>
>> Btw: when I send the proper 1.2 message, I get the following in the
>> daemon.log:
>>
>>     ovs-vswitchd: ovs|11535|meta_flow|WARN|destination field ip_src
>> lacks correct prerequisites
> Based on the command you provided above, this is probably because you
> think that 0x8000 is the ethernet type for IPv4.  It's not.
Ugh...what a typo, should of course be 0x0800.


Cheers, Tobbe

>
>> Any ideas on how to perform some interop. testing of the various OF
>> proto versions?
> I don't know a good way, but this is already some useful feedback.
> Thanks.




More information about the discuss mailing list