> On Mon, Jun 20, 2016 at 9:02 PM, Li, Johnson <johnson...@intel.com> wrote:
> >   2) Add framework codes (or full implementation) for MD type 2 support of
> >       the NSH header. According to the discussion at
> >       http://comments.gmane.org/gmane.network.openvswitch.devel/53788
> >       I will reuse the definitions for METADATA[0...63]. Since NSH is not 
> > one of
> >       The tunneling encapsulation headers, renaming for the fields is 
> > required.
> >       This might be a huge change for the current code base:
> 
> Please see this discussion with you coworker from 6 months ago:
> http://openvswitch.org/pipermail/dev/2015-December/063306.html
> 
> You guys already renamed the fields once. At this point, you need to live with
> what is there since we're not going to break compatibility with previous 
> releases.
>
[JL] Yes, Mengke had renamed the command line and mapping table from 
xx-geneve-yy
To xx-tlv-yy. However, the flow fields are still named TUN_xxxx and bind to 
geneve
Tunneling ports. So there are some issues here. For example, I added one VxLAN 
port
With the following command:
# sudo ovs-vsctl add-port br-int vxlan0 -- set interface vxlan0 type=vxlan \
                         options:dst_port=4790 options:remote_ip=192.168.50.101 
\
                         options:key=1000 options:exts=gpe 
Then I tried to add some TLV map and then some flows:
#sudo ovs-ofctl add-tlv-map br-int "{class=0xffff,type=0,len=4}->tun_metadata0, 
 \
            {class=0xffff,type=1,len=8}->tun_metadata1"
#sudo ovs-ofctl add-flow br-int "table=0, priority=260, in_port=LOCAL \
            actions=load:0x11223344->NXM_NX_TUN_METADATA0[], \
            load:0x5566778899aabbcc->NXM_NX_TUN_METADATA1[],output:1"
 Then I dumped the data path flow rules, it would be like:
    set(tunnel(tun_id=0x3e8,dst=192.168.50.101,ttl=64, \
    geneve({class=0xffff,type=0,len=4,0x11223344} \
    {class=0xffff,type=0x1,len=8,0x5566778899aabbcc}),flags(df|key))),2
Even though I set the tunneling port's type to be VxLAN, the data plane flow 
will
Be geneve, then the flows cannot be downloaded to the data plane. 

In the development, we must unbind the fields TUN_METADATAx from geneve 
tunneling
Ports.  So rename the these fields may also be required since the NSH header is 
not
A tunneling encapsulation header.  
> >     3) Add "Ethernet + NSH" support for the OVS.  Following the discussion 
> > at
> >          http://comments.gmane.org/gmane.network.openvswitch.devel/53788
> >          we will introduce new match fields "encap_eth_dst/encap_eth_src" 
> > and
> >          related openflow actions"push_encap_eth/pop_encap_eth".  Since we
> >           treat outer Ethernet header as encapsulation header, so NO VLAN 
> > and
> >          MPLS tags are supported for the outer header. That means packets 
> > with
> >          Format "Ethernet + VLAN[|MPLS] + NSH + Ethernet + IPv4[|IPv6] +
> playload"
> >          Will be dropped by the OVS when parsing the packets.
> >          Examples for Ethernet NSH case:
> 
> Please make a generalized push/pop Ethernet header rather than a specialized
> one for this case. There are other use cases that involve this and they 
> should be
> consistent (i.e. connecting an L3 tunnel to an
> L2 interface, MAC-in-MAC encapsulation, etc.)
[JL] Since we introduced new fields encap_eth_dst/src, we know that the field 
differs from
Origin eth_dst/src definitons. Then if we defines push_eth/pop_eth actions, but 
use the new field
Definition encap_eth_dst/src as values to be pushed/popped, that would be 
confusing. 
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to