At this point, ipv6 is not supported yet. But openstack neutron does.
Ignore ipv6 address for now. Otherwise exception as blow is thrown.
This patches works around BUG #4045.
TODO: implement ipv6 and then remove this work around
> 2015-07-21 17:22:14,077 | ERROR | ntDispatcherImpl | EventDispatcher | 400 - org.opendaylight.ovsdb.openstack.net-virt - 1.2.0.SNAPSHOT | Exception in dispatching event NorthboundEvent [handler=NEUTRON_PORT, action=ADD, port=NeutronPort [portUUID=
c625a77a-4720-4115-beb4-
fd48bcd36727, networkUUID=
dbe6f7d4-695f-45cc-a71c-
1454057a4928, name=, adminStateUp=true, status=null, macAddress=FA:16:3E:39:9C:53, fixedIPs=[Neutron_IPs{ipAddress='fdbe:bc75:a195::1', subnetUUID='
9a1077b9-a35f-46fe-a2d7-
1536301979e8'}], deviceID=
76751b66-0e7c-402d-9196-
fac1d8c34627, deviceOwner=network:router_interface, tenantID=
be9da0d68e28424db03bfb32574c78e5, floatingIPMap={}, securityGroups=[], bindinghostID=, bindingvnicType=normal, bindingvnicType=normal], subnet=null, router=null, routerInterface=null, floatingIP=null, network=null, loadBalancer=null, loadBalancerPool=null, loadBalancerPoolMember=null]
> java.lang.IllegalArgumentException: Supplied value "fdbe:bc75:a195:0:0:0:0:1/64" does not match required pattern "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])/(([0-9])|([1-2][0-9])|(3[0-2]))$"
> at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)[39:com.google.guava:18.0.0]
> at org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix.<init>(Ipv4Prefix.java:49)[49:org.opendaylight.yangtools.model.ietf-inet-types:2010.9.24.8-SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services.RoutingService.programRouterInterface(RoutingService.java:85)[401:org.opendaylight.ovsdb.openstack.net-virt-providers:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.programRouterInterfaceStage2(NeutronL3Adapter.java:855)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.programRouterInterfaceStage1(NeutronL3Adapter.java:833)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.programFlowForNetworkFromExternal(NeutronL3Adapter.java:720)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.programFlowsForNeutronRouterInterface(NeutronL3Adapter.java:688)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.handleNeutronRouterInterfaceEvent(NeutronL3Adapter.java:227)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.NeutronL3Adapter.handleNeutronPortEvent(NeutronL3Adapter.java:186)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.PortHandler.doNeutronPortCreated(PortHandler.java:68)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.PortHandler.processEvent(PortHandler.java:164)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.EventDispatcherImpl.dispatchEvent(EventDispatcherImpl.java:96)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.EventDispatcherImpl.access$100(EventDispatcherImpl.java:30)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at org.opendaylight.ovsdb.openstack.netvirt.impl.EventDispatcherImpl$1.run(EventDispatcherImpl.java:59)[400:org.opendaylight.ovsdb.openstack.net-virt:1.2.0.SNAPSHOT]
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)[:1.7.0_79]
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)[:1.7.0_79]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_79]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_79]
> at java.lang.Thread.run(Thread.java:745)[:1.7.0_79]
Change-Id: I5db1bc9ad9f008c984c4ab4fa34569a3baffe310
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
package org.opendaylight.ovsdb.openstack.netvirt.providers.openflow13.services;
import java.math.BigInteger;
+import java.net.Inet6Address;
import java.net.InetAddress;
import java.util.List;
import com.google.common.collect.Lists;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class RoutingService extends AbstractServiceInstance implements RoutingProvider, ConfigInterface {
+ private static final Logger LOG = LoggerFactory.getLogger(RoutingService.class);
public RoutingService() {
super(Service.ROUTING);
}
MatchUtils.createTunnelIDMatch(matchBuilder, new BigInteger(sourceSegId));
}
+ if (address instanceof Inet6Address) {
+ // WORKAROUND: For now ipv6 is not supported
+ // TODO: implement ipv6 case
+ LOG.debug("ipv6 address is not implemented yet. address {}",
+ address);
+ new Status(StatusCode.NOTIMPLEMENTED);
+ }
final String prefixString = address.getHostAddress() + "/" + mask;
MatchUtils.createDstL3IPv4Match(matchBuilder, new Ipv4Prefix(prefixString));