[ovs-discuss] Is there any document about nicira externtion

kai xi fan kaixi.f at gmail.com
Wed Sep 4 04:12:40 UTC 2019


Hi Ashish Varma,

I have read the document as https://patchwork.ozlabs.org/patch/1145870/
When controller wants to send a flow to ovs through openflow, and the flow
both contains nicira match and openflow match. What's the value of "message
type" in "struct ofp_header".
Do the message contain both nxm_match and oxm_match structures ?

thanks. Regards

kai xi fan <kaixi.f at gmail.com> 于2019年8月21日周三 下午2:42写道:

> Many thanks. I will check that.
> The "nxm_packet_in_2" packet_in format contains userdata field.  It could
> be used to save arp or dhcp data corresponded to the host in the flow. Then
> the controller do not need to constructor these caches.
> It's used in ovn.
>
> Ashish Varma <ashishvarma.ovs at gmail.com> 于2019年8月21日周三 上午12:46写道:
>
>> I have attempted to write a document explaining the Nicira extension
>> which is still a v1 patch for review.
>>
>> https://patchwork.ozlabs.org/patch/1145870/
>>
>> Nicira extensions were added in the early days of OVS during early
>> OpenFlow versions and a lot of those extensions made it to standard
>> OpenFlow specifications.
>> packet_in message is supported in OpenFlow 1.3. Any specific reason to
>> use nxm_packet_in_2?
>>
>> Below is an example of OpenFlow 1.0 Nicira Vendor message 'Flow Mod' with
>> 'NXM' or Nicira Extensible Match fields generated using:
>> ovs-ofctl add-flow br1 "table=10, priority=100, cookie=0x0102030405060708
>> ip, sctp, sctp_dst=9, actions=drop"
>>
>> This is an example to show how NXM is encoded.
>>
>> OVS NXM fields are described at
>> http://www.openvswitch.org/support/dist-docs/ovs-fields.7.txt
>>
>> 0x01    0x04    0x00    0x48    0x00    0x00    0x00    0x0a
>> 0x00    0x00    0x23    0x20    0x00    0x00    0x00    0x0d
>> 0x01    0x02    0x03    0x04    0x05    0x06    0x07    0x08
>> 0x0a    0x00    0x00    0x00    0x00    0x00    0x00    0x64
>> 0xff    0xff    0xff    0xff    0xff    0xff    0x00    0x00
>> 0x00    0x11    0x00    0x00    0x00    0x00    0x00    0x00
>> 0x00    0x00    0x06    0x02    0x08    0x00    0x00    0x00
>> 0x0c    0x01    0x84    0x80    0x00    0x24    0x02    0x00
>> 0x09    0x00    0x00    0x00    0x00    0x00    0x00    0x00
>>
>>
>> // ofp_header with Version=1, Message Type=4 (Vendor)
>> 0x01    0x04    0x00    0x48    0x00    0x00    0x00    0x0a
>>
>> // Vendor id = 0x00002320 Subtype = 0x00 0x0d   (Where are these defined
>> ??)
>> 0x00    0x00    0x23    0x20    0x00    0x00    0x00    0x0d
>>
>> // Cookie
>> 0x01    0x02    0x03    0x04    0x05    0x06    0x07    0x08
>>
>> // Command = 0x0a 0x00 (table-id=0x0a,command=add(0x00))  idle_time = 0
>> hard_time = 0 priority = 100
>> 0x0a    0x00    0x00    0x00    0x00    0x00    0x00    0x64
>>
>> // buffer_id = 0xffffffff out_port = OFPP_NONE(0xffff) flags = 0
>> 0xff    0xff    0xff    0xff    0xff    0xff    0x00    0x00
>>
>> // match_len = 0x11 padding= 0x000000000000
>> 0x00    0x11    0x00    0x00    0x00    0x00    0x00    0x00
>>
>> // OFPXMC12_NXM_0 (nxm_vendor 0x0000)
>> nxm_field+hm=0x06,nxm_field=0x03,hm=0 nxm_length=0x02 value=0x0800
>> (ethernet)
>> 0x00    0x00    0x06    0x02    0x08    0x00
>>
>> // OFPXMC12_NXM_0 (nxm_vendor 0x0000)
>> nxm_field+hm=0x0c,nxm_field=0x06,hm=0 nxm_length=0x01 value=0x84 (sctp)
>> 0x00    0x00    0x0c    0x01    0x84
>>
>> // OFPXMC_OPENFLOW_BASIC (0x8000) nxm_field+hm=0x24,nxm_field=0x12,hm=0
>> nxm_length=0x02 value=0x09 (sctp_dst_port)
>> 0x80    0x00    0x24    0x02    0x00    0x09
>>
>> // padding 7 bytes of 0s
>> 0x00    0x00    0x00    0x00    0x00    0x00    0x00
>>
>>
>>
>> Thanks,
>> Ashish
>>
>> On Tue, Aug 20, 2019 at 3:45 AM kai xi fan <kaixi.f at gmail.com> wrote:
>>
>>> Thanks.
>>> I have read the following file.
>>> https://github.com/openvswitch/ovs/blob/master/include/openflow/nicira
>>> -ext.h
>>> But it's too simple to understand. For example, nicira extension use
>>> properties in "nxm packet_in_2" packet in format. But there is no such
>>> openflow message format in detail.
>>> I have to tcpdump the openflow packet to understand it.
>>> May be there is a official document about this ?
>>>
>>> Numan Siddique <nusiddiq at redhat.com> 于2019年8月20日周二 下午3:37写道:
>>>
>>>>
>>>>
>>>> On Tue, Aug 20, 2019 at 7:35 AM kai xi fan <kaixi.f at gmail.com> wrote:
>>>>
>>>>> I am writing a controller to control ovs through openflow protocol.
>>>>> I found that  when I dump flows from ovs using ovs-ofctl. It shows me
>>>>> so many fields prefixed with "NXM".
>>>>> And we plan to use "nxm packet_in_2" format. It also needs nicira
>>>>> extensions.
>>>>> So if the controller wants to communicate with ovs using openflow 1.3,
>>>>> I have to deal with nicira extensions.
>>>>> But I could not found any document about its format and the
>>>>> corresponding openflow message format.
>>>>> Could any one help me ?
>>>>>
>>>>
>>>> I think you can find useful information here -
>>>> https://github.com/openvswitch/ovs/blob/master/include/openflow/nicira-ext.h
>>>>
>>>> Thanks
>>>> Numan
>>>>
>>>>
>>>>> thanks.
>>>>> _______________________________________________
>>>>> discuss mailing list
>>>>> discuss at openvswitch.org
>>>>> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>>>>>
>>>> _______________________________________________
>>> discuss mailing list
>>> discuss at openvswitch.org
>>> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20190904/4ed31ec5/attachment-0001.html>


More information about the discuss mailing list