Re: [ovs-dev] [PATCH 6/6] tunneling: Enable IPv6 tuneling.

2016-03-14 Thread pravin shelar
On Fri, Mar 11, 2016 at 10:02 AM, Jesse Gross  wrote:
> On Wed, Mar 9, 2016 at 4:40 PM, Pravin B Shelar  wrote:
>> From: Pravin B Shelar 
>>
>> There is check to disable IPv6 tunneling. Following patch
>> removes it and reintroduces the tunneling automake tests.
>>
>> This reverts commit 250bd94d1e500a89c76cac944e660bd9c07ac364.
>>
>> Signed-off-by: Pravin B Shelar 
>
> When we reintroduce IPv6 tunneling, it would be nice to update the
> documentation and add it to NEWS as well.

ok, I have updated NEWS and man page.
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev


Re: [ovs-dev] [PATCH 6/6] tunneling: Enable IPv6 tuneling.

2016-03-11 Thread Jesse Gross
On Wed, Mar 9, 2016 at 4:40 PM, Pravin B Shelar  wrote:
> From: Pravin B Shelar 
>
> There is check to disable IPv6 tunneling. Following patch
> removes it and reintroduces the tunneling automake tests.
>
> This reverts commit 250bd94d1e500a89c76cac944e660bd9c07ac364.
>
> Signed-off-by: Pravin B Shelar 

When we reintroduce IPv6 tunneling, it would be nice to update the
documentation and add it to NEWS as well.
___
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev


[ovs-dev] [PATCH 6/6] tunneling: Enable IPv6 tuneling.

2016-03-09 Thread Pravin B Shelar
From: Pravin B Shelar 

There is check to disable IPv6 tunneling. Following patch
removes it and reintroduces the tunneling automake tests.

This reverts commit 250bd94d1e500a89c76cac944e660bd9c07ac364.

Signed-off-by: Pravin B Shelar 
---
 lib/netdev-vport.c|   8 ---
 ofproto/tunnel.c  |   8 ---
 tests/tunnel-push-pop-ipv6.at | 141 --
 3 files changed, 137 insertions(+), 20 deletions(-)

diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
index e3e6305..1784a46 100644
--- a/lib/netdev-vport.c
+++ b/lib/netdev-vport.c
@@ -504,10 +504,6 @@ set_tunnel_config(struct netdev *dev_, const struct smap 
*args)
   name, node->value);
 return EINVAL;
 }
-if (dst_proto == ETH_TYPE_IPV6) {
-VLOG_WARN("%s: IPv6 'remote_ip' is not supported", name);
-return EOPNOTSUPP;
-}
 } else if (!strcmp(node->key, "local_ip")) {
 int err;
 err = parse_tunnel_ip(node->value, true, _cfg.ip_src_flow,
@@ -517,10 +513,6 @@ set_tunnel_config(struct netdev *dev_, const struct smap 
*args)
 VLOG_WARN("%s: bad %s 'local_ip'", name, type);
 break;
 }
-if (src_proto == ETH_TYPE_IPV6) {
-VLOG_WARN("%s: IPv6 'local_ip' is not supported", name);
-return EOPNOTSUPP;
-}
 } else if (!strcmp(node->key, "tos")) {
 if (!strcmp(node->value, "inherit")) {
 tnl_cfg.tos_inherit = true;
diff --git a/ofproto/tunnel.c b/ofproto/tunnel.c
index a63cf71..24b717a 100644
--- a/ofproto/tunnel.c
+++ b/ofproto/tunnel.c
@@ -427,14 +427,6 @@ tnl_port_send(const struct ofport_dpif *ofport, struct 
flow *flow,
 flow->tunnel.ipv6_dst = tnl_port->match.ipv6_dst;
 }
 }
-if (ipv6_addr_is_set(>tunnel.ipv6_dst) ||
-ipv6_addr_is_set(>tunnel.ipv6_src)) {
-out_port = ODPP_NONE;
-VLOG_WARN_RL(, "port (%s): IPv6 tunnel endpoint is not supported",
- netdev_get_name(tnl_port->netdev));
-goto out;
-}
-
 flow->pkt_mark = tnl_port->match.pkt_mark;
 
 if (!cfg->out_key_flow) {
diff --git a/tests/tunnel-push-pop-ipv6.at b/tests/tunnel-push-pop-ipv6.at
index d3b09b8..842f1d0 100644
--- a/tests/tunnel-push-pop-ipv6.at
+++ b/tests/tunnel-push-pop-ipv6.at
@@ -10,10 +10,143 @@ AT_CHECK([ovs-vsctl add-port int-br t2 -- set Interface t2 
type=vxlan \
options:remote_ip=2001:cafe::92 options:key=456 
ofport_request=3\
 -- add-port int-br t3 -- set Interface t3 type=vxlan \
options:remote_ip=2001:cafe::93 options:out_key=flow 
options:csum=true ofport_request=4\
-   ], [0], [], [dnl
-ovs-vsctl: Error detected while setting up 't2', 't1', 't3'.  See ovs-vswitchd 
log for details.
+-- add-port int-br t4 -- set Interface t4 type=geneve \
+   options:remote_ip=flow options:key=123 ofport_request=5\
+   ], [0])
+
+AT_CHECK([ovs-appctl dpif/show], [0], [dnl
+dummy@ovs-dummy: hit:0 missed:0
+   br0:
+   br0 65534/100: (dummy)
+   p0 1/1: (dummy)
+   int-br:
+   int-br 65534/2: (dummy)
+   t1 3/3: (gre: key=456, remote_ip=2001:cafe::92)
+   t2 2/4789: (vxlan: key=123, remote_ip=2001:cafe::92)
+   t3 4/4789: (vxlan: csum=true, out_key=flow, 
remote_ip=2001:cafe::93)
+   t4 5/6081: (geneve: key=123, remote_ip=flow)
+])
+
+dnl First setup dummy interface IP address, then add the route
+dnl so that tnl-port table can get valid IP address for the device.
+AT_CHECK([ovs-appctl netdev-dummy/ip6addr br0 2001:cafe::88/24], [0], [OK
+])
+AT_CHECK([ovs-appctl ovs/route/add 2001:cafe::92/24 br0], [0], [OK
+])
+
+AT_CHECK([ovs-ofctl add-flow br0 action=normal])
+
+dnl Check ARP Snoop
+AT_CHECK([ovs-appctl netdev-dummy/receive br0 
'in_port(100),eth(src=f8:bc:12:44:34:b6,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::92,dst=2001:cafe::94,label=0,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=136,code=0),nd(target=2001:cafe::92,sll=00:00:00:00:00:00,tll=f8:bc:12:44:34:b6)'])
+
+AT_CHECK([ovs-appctl netdev-dummy/receive br0 
'in_port(100),eth(src=f8:bc:12:44:34:b7,dst=aa:55:aa:55:00:00),eth_type(0x86dd),ipv6(src=2001:cafe::93,dst=2001:cafe::94,label=0,proto=58,tclass=0,hlimit=255,frag=no),icmpv6(type=136,code=0),nd(target=2001:cafe::93,sll=00:00:00:00:00:00,tll=f8:bc:12:44:34:b7)'])
+
+AT_CHECK([ovs-appctl tnl/arp/show], [0], [dnl
+IPMAC Bridge
+==
+2001:cafe::92 f8:bc:12:44:34:b6   br0
+2001:cafe::93