Hi Yamamoto-San,

 > do you need this?
 > unlike NiciraExperimenter, you have a plenty of ordinary 32-bit NXMs
 > usable for testing.

I was fixed indicated matter and I've re-posted the patch.
  [PATCH v2] ofproto/nicira_ext: Add missing NXMs in OVS v2.6.0


Thanks,

On 2016年09月30日 15:32, Takashi YAMAMOTO wrote:
>
>
> On Fri, Sep 30, 2016 at 1:22 PM, Shinpei Muraoka
> <[email protected] <mailto:[email protected]>> wrote:
>
>     Signed-off-by: Shinpei Muraoka <[email protected]
>     <mailto:[email protected]>>
>     ---
>      ryu/ofproto/nicira_ext.py | 179
>     +++++++++++++++++++++++++++++++++++++++++++++-
>      1 file changed, 177 insertions(+), 2 deletions(-)
>
>     diff --git a/ryu/ofproto/nicira_ext.py b/ryu/ofproto/nicira_ext.py
>     index ef44ccf..4b7704e 100644
>     --- a/ryu/ofproto/nicira_ext.py
>     +++ b/ryu/ofproto/nicira_ext.py
>     @@ -426,6 +426,7 @@ The following arguments are available.
>      ================ ===============
>     ==============================================
>      Argument         Value           Description
>      ================ ===============
>     ==============================================
>     +in_port_nxm      Integer 16bit   OpenFlow port number.
>      eth_dst_nxm      MAC address     Ethernet destination address.
>      eth_src_nxm      MAC address     Ethernet source address.
>      eth_type_nxm     Integer 16bit   Ethernet type.  Needed to support
>     Nicira
>     @@ -433,27 +434,148 @@ eth_type_nxm     Integer 16bit   Ethernet
>     type.  Needed to support Nicira
>                                       be set. (i.e. tcp_flags_nxm)
>      vlan_tci         Integer 16bit   VLAN TCI. Basically same as
>     vlan_vid plus
>                                       vlan_pcp.
>     +nw_tos           Integer 8bit    IP ToS or IPv6 traffic class field
>     dscp.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>      ip_proto_nxm     Integer 8bit    IP protocol. Needed to support Nicira
>                                       extensions that require the
>     ip_proto to
>                                       be set. (i.e. tcp_flags_nxm)
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +ipv4_src_nxm     IPv4 address    IPv4 source address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0800 (IPv4)
>     +ipv4_dst_nxm     IPv4 address    IPv4 destination address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0800 (IPv4)
>     +tcp_src_nxm      Integer 16bit   TCP source port.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +                                 and ip_proto_nxm = 6 (TCP)
>     +tcp_dst_nxm      Integer 16bit   TCP destination port.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +                                 and ip_proto_nxm = 6 (TCP)
>     +udp_src_nxm      Integer 16bit   UDP source port.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +                                 and ip_proto_nxm = 17 (UDP)
>     +udp_dst_nxm      Integer 16bit   UDP destination port.
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +                                 and ip_proto_nxm = 17 (UDP)
>     +icmpv4_type_nxm  Integer 8bit    Type  matches  the ICMP type and
>     code matches
>     +                                 the ICMP code.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0800 (IPv4) and
>     +                                 ip_proto_nxm = 1 (ICMP)
>     +icmpv4_code_nxm  Integer 8bit    Type  matches  the ICMP type and
>     code matches
>     +                                 the ICMP code.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0800 (IPv4) and
>     +                                 ip_proto_nxm = 1 (ICMP)
>     +arp_op_nxm       Integer 16bit   Only ARP opcodes between 1 and 255
>     should be
>     +                                 specified for matching.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0806 (ARP)
>     +arp_spa_nxm      IPv4 address    An address may be specified as an
>     IP address
>     +                                 or host name.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0806 (ARP)
>     +arp_tpa_nxm      IPv4 address    An address may be specified as an
>     IP address
>     +                                 or host name.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0806 (ARP)
>      tunnel_id_nxm    Integer 64bit   Tunnel identifier.
>     +arp_sha_nxm      MAC address     An address is specified as 6 pairs of
>     +                                 hexadecimal digits delimited by
>     colons.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0806 (ARP)
>     +arp_tha_nxm      MAC address     An address is specified as 6 pairs of
>     +                                 hexadecimal digits delimited by
>     colons.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0806 (ARP)
>     +ipv6_src_nxm     IPv6 address    IPv6 source address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6)
>     +ipv6_dst_nxm     IPv6 address    IPv6 destination address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6)
>     +icmpv6_type_nxm  Integer 8bit    Type  matches the ICMP type and
>     code matches
>     +                                 the ICMP code.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6) and
>     +                                 ip_proto_nxm = 58 (ICMP for IPv6)
>     +icmpv6_code_nxm  Integer 8bit    Type  matches the ICMP type and
>     code matches
>     +                                 the ICMP code.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6) and
>     +                                 ip_proto_nxm = 58 (ICMP for IPv6)
>     +nd_target        IPv6 address    The target address ipv6.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6) and
>     +                                 ip_proto_nxm = 58 (ICMP for IPv6)
>     +nd_sll           MAC address     The source link-layer address option.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6) and
>     +                                 ip_proto_nxm = 58 (ICMP for IPv6) and
>     +                                 icmpv6_type_nxm = 135 (Neighbor
>     solicitation)
>     +nd_tll           MAC address     The target link-layer address option.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6) and
>     +                                 ip_proto_nxm = 58 (ICMP for IPv6) and
>     +                                 icmpv6_type_nxm = 136 (Neighbor
>     advertisement)
>     +ip_frag          Integer 8bit    frag_type specifies what kind of
>     IP fragments
>     +                                 or non-fragments to match.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +ipv6_label       Integer 32bit   Matches IPv6 flow label.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6)
>     +ip_ecn_nxm       Integer 8bit    Matches ecn bits in IP ToS or IPv6
>     traffic
>     +                                 class fields.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +nw_ttl           Integer 8bit    IP TTL or IPv6 hop limit value ttl.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = [0x0800
>     (IPv4)|0x86dd (IPv6)]
>     +mpls_ttl         Integer 8bit    The TTL of the outer MPLS label
>     stack entry
>     +                                 of a packet.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x8847 (MPLS Unicast)
>      tun_ipv4_src     IPv4 address    Tunnel IPv4 source address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0800 (IPv4)
>      tun_ipv4_dst     IPv4 address    Tunnel IPv4 destination address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x0800 (IPv4)
>      pkt_mark         Integer 32bit   Packet metadata mark.
>      tcp_flags_nxm    Integer 16bit   TCP Flags.  Requires setting fields:
>                                       eth_type_nxm = [0x0800 (IP)|0x86dd
>     (IPv6)] and
>                                       ip_proto_nxm = 6 (TCP)
>      conj_id          Integer 32bit   Conjunction ID used only with
>                                       the conjunction action
>     +tun_gbp_id       Integer 16bit   The group policy identifier in the
>     +                                 VXLAN header.
>     +tun_gbp_flags    Integer 8bit    The group policy flags in the
>     +                                 VXLAN header.
>     +tun_flags        Integer 16bit   Flags indicating various aspects of
>     +                                 the tunnel encapsulation.
>      ct_state         Integer 32bit   Conntrack state.
>      ct_zone          Integer 16bit   Conntrack zone.
>      ct_mark          Integer 32bit   Conntrack mark.
>      ct_label         Integer 128bit  Conntrack label.
>      tun_ipv6_src     IPv6 address    Tunnel IPv6 source address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6)
>      tun_ipv6_dst     IPv6 address    Tunnel IPv6 destination address.
>     +                                 Requires setting fields:
>     +                                 eth_type_nxm = 0x86dd (IPv6)
>     +_recirc_id       Integer 32bit   ID for recirculation.
>      _dp_hash         Integer 32bit   Flow hash computed in Datapath.
>      reg<idx>         Integer 32bit   Packet register.
>     -                                 <idx> is register number 0-7.
>     +                                 <idx> is register number 0-15.
>     +xxreg<idx>       Integer 128bit  Packet extended-extended register.
>     +                                 <idx> is register number 0-3.
>      ================ ===============
>     ==============================================
>
>      .. Note::
>     @@ -481,17 +603,50 @@ reg<idx>         Integer 32bit   Packet register.
>      """
>
>      oxm_types = [
>     +    # OFPXMC_NXM_0
>     +    oxm_fields.NiciraExtended0('in_port_nxm', 0, type_desc.Int2),
>          oxm_fields.NiciraExtended0('eth_dst_nxm', 1, type_desc.MacAddr),
>          oxm_fields.NiciraExtended0('eth_src_nxm', 2, type_desc.MacAddr),
>          oxm_fields.NiciraExtended0('eth_type_nxm', 3, type_desc.Int2),
>          oxm_fields.NiciraExtended0('vlan_tci', 4, type_desc.Int2),
>     +    oxm_fields.NiciraExtended0('nw_tos', 5, type_desc.Int1),
>          oxm_fields.NiciraExtended0('ip_proto_nxm', 6, type_desc.Int1),
>     +    oxm_fields.NiciraExtended0('ipv4_src_nxm', 7, type_desc.IPv4Addr),
>     +    oxm_fields.NiciraExtended0('ipv4_dst_nxm', 8, type_desc.IPv4Addr),
>     +    oxm_fields.NiciraExtended0('tcp_src_nxm', 9, type_desc.Int2),
>     +    oxm_fields.NiciraExtended0('tcp_dst_nxm', 10, type_desc.Int2),
>     +    oxm_fields.NiciraExtended0('udp_src_nxm', 11, type_desc.Int2),
>     +    oxm_fields.NiciraExtended0('udp_dst_nxm', 12, type_desc.Int2),
>     +    oxm_fields.NiciraExtended0('icmpv4_type_nxm', 13, type_desc.Int1),
>     +    oxm_fields.NiciraExtended0('icmpv4_code_nxm', 14, type_desc.Int1),
>     +    oxm_fields.NiciraExtended0('arp_op_nxm', 15, type_desc.Int2),
>     +    oxm_fields.NiciraExtended0('arp_spa_nxm', 16, type_desc.IPv4Addr),
>     +    oxm_fields.NiciraExtended0('arp_tpa_nxm', 17, type_desc.IPv4Addr),
>     +
>     +    # OFPXMC_NXM_1
>          oxm_fields.NiciraExtended1('tunnel_id_nxm', 16, type_desc.Int8),
>     +    oxm_fields.NiciraExtended1('arp_sha_nxm', 17, type_desc.MacAddr),
>     +    oxm_fields.NiciraExtended1('arp_tha_nxm', 18, type_desc.MacAddr),
>     +    oxm_fields.NiciraExtended1('ipv6_src_nxm', 19, type_desc.IPv6Addr),
>     +    oxm_fields.NiciraExtended1('ipv6_dst_nxm', 20, type_desc.IPv6Addr),
>     +    oxm_fields.NiciraExtended1('icmpv6_type_nxm', 21, type_desc.Int1),
>     +    oxm_fields.NiciraExtended1('icmpv6_code_nxm', 22, type_desc.Int1),
>     +    oxm_fields.NiciraExtended1('nd_target', 23, type_desc.IPv6Addr),
>     +    oxm_fields.NiciraExtended1('nd_sll', 24, type_desc.MacAddr),
>     +    oxm_fields.NiciraExtended1('nd_tll', 25, type_desc.MacAddr),
>     +    oxm_fields.NiciraExtended1('ip_frag', 26, type_desc.Int1),
>     +    oxm_fields.NiciraExtended1('ipv6_label', 27, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('ip_ecn_nxm', 28, type_desc.Int1),
>     +    oxm_fields.NiciraExtended1('nw_ttl', 29, type_desc.Int1),
>     +    oxm_fields.NiciraExtended1('mpls_ttl', 30, type_desc.Int1),
>          oxm_fields.NiciraExtended1('tun_ipv4_src', 31, type_desc.IPv4Addr),
>          oxm_fields.NiciraExtended1('tun_ipv4_dst', 32, type_desc.IPv4Addr),
>          oxm_fields.NiciraExtended1('pkt_mark', 33, type_desc.Int4),
>          oxm_fields.NiciraExtended1('tcp_flags_nxm', 34, type_desc.Int2),
>          oxm_fields.NiciraExtended1('conj_id', 37, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('tun_gbp_id', 38, type_desc.Int2),
>     +    oxm_fields.NiciraExtended1('tun_gbp_flags', 39, type_desc.Int1),
>     +    oxm_fields.NiciraExtended1('tun_flags', 104, type_desc.Int2),
>          oxm_fields.NiciraExtended1('ct_state', 105, type_desc.Int4),
>          oxm_fields.NiciraExtended1('ct_zone', 106, type_desc.Int2),
>          oxm_fields.NiciraExtended1('ct_mark', 107, type_desc.Int4),
>     @@ -499,13 +654,18 @@ oxm_types = [
>          oxm_fields.NiciraExtended1('tun_ipv6_src', 109,
>     type_desc.IPv6Addr),
>          oxm_fields.NiciraExtended1('tun_ipv6_dst', 110,
>     type_desc.IPv6Addr),
>
>     +    # The following definition is merely for testing 32-bit NXMs.
>     +    # Prefix the name with '_' to indicate this is not intended to
>     be used
>     +    # in wild.
>
>     +    oxm_fields.NiciraExtended1('_recirc_id', 36, type_desc.Int4),
>
>
> do you need this?
> unlike NiciraExperimenter, you have a plenty of ordinary 32-bit NXMs
> usable for testing.
>
>
>     +
>          # The following definition is merely for testing 64-bit
>     experimenter OXMs.
>          # Following Open vSwitch, we use dp_hash for this purpose.
>          # Prefix the name with '_' to indicate this is not intended to
>     be used
>          # in wild.
>          oxm_fields.NiciraExperimenter('_dp_hash', 0, type_desc.Int4),
>
>     -    # Support for matching/setting NX registers 0-7
>     +    # Support for matching/setting NX registers 0-15
>          oxm_fields.NiciraExtended1('reg0', 0, type_desc.Int4),
>          oxm_fields.NiciraExtended1('reg1', 1, type_desc.Int4),
>          oxm_fields.NiciraExtended1('reg2', 2, type_desc.Int4),
>     @@ -514,4 +674,19 @@ oxm_types = [
>          oxm_fields.NiciraExtended1('reg5', 5, type_desc.Int4),
>          oxm_fields.NiciraExtended1('reg6', 6, type_desc.Int4),
>          oxm_fields.NiciraExtended1('reg7', 7, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg8', 8, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg9', 9, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg10', 10, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg11', 11, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg12', 12, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg13', 13, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg14', 14, type_desc.Int4),
>     +    oxm_fields.NiciraExtended1('reg15', 15, type_desc.Int4),
>     +
>     +    # Support for matching/setting NX extended-extended registers 0-3
>     +    oxm_fields.NiciraExtended1('xxreg0', 111, type_desc.Int16),
>     +    oxm_fields.NiciraExtended1('xxreg1', 112, type_desc.Int16),
>     +    oxm_fields.NiciraExtended1('xxreg2', 113, type_desc.Int16),
>     +    oxm_fields.NiciraExtended1('xxreg3', 114, type_desc.Int16),
>     +
>      ]
>     --
>     2.7.4
>
>
>     
> ------------------------------------------------------------------------------
>     _______________________________________________
>     Ryu-devel mailing list
>     [email protected] <mailto:[email protected]>
>     https://lists.sourceforge.net/lists/listinfo/ryu-devel
>     <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>
>

------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to