import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.Ports;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.Port;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.ports.rev150712.ports.attributes.ports.PortKey;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.portsecurity.rev150712.PortSecurityExtension;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.rev150712.Neutron;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.Subnets;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.subnets.rev150712.subnets.attributes.subnets.Subnet;\r
@VisibleForTesting\r
VppEndpoint buildVppEndpoint(Port port, BaseEndpointByPort bebp) {\r
PortBindingExtension portBinding = port.getAugmentation(PortBindingExtension.class);\r
+ ExcludeFromPolicy excludeFromPolicy = new ExcludeFromPolicyBuilder().setExcludeFromPolicy(true).build();\r
VppEndpointBuilder vppEpBuilder = new VppEndpointBuilder().setDescription("neutron port")\r
.setContextId(bebp.getContextId())\r
.setContextType(bebp.getContextType())\r
.setAddressType(bebp.getAddressType())\r
.setVppInterfaceName(VPP_INTERFACE_NAME_PREFIX + bebp.getPortId().getValue())\r
.setVppNodeId(new NodeId(portBinding.getHostId()));\r
+\r
if (port.getDeviceOwner().contains(COMPUTE_OWNER)) {\r
vppEpBuilder.setInterfaceTypeChoice(\r
- new VhostUserCaseBuilder().setSocket(getSocketFromPortBinding(portBinding)).build());\r
+ new VhostUserCaseBuilder().setSocket(getSocketFromPortBinding(portBinding)).build());\r
+ Optional<PortSecurityExtension> portSecurity =\r
+ Optional.fromNullable(port.getAugmentation(PortSecurityExtension.class));\r
+ if (portSecurity.isPresent() && !portSecurity.get().isPortSecurityEnabled()) {\r
+ vppEpBuilder.addAugmentation(ExcludeFromPolicy.class, excludeFromPolicy);\r
+ }\r
+\r
} else if (port.getDeviceOwner().contains(DHCP_OWNER) && port.getMacAddress() != null) {\r
IpAddress dhcpServerIpAddress = port.getFixedIps().stream().findFirst().isPresent() ?\r
port.getFixedIps().stream().findFirst().get().getIpAddress() : null;\r
.setDhcpServerAddress(dhcpServerIpAddress)\r
.build();\r
vppEpBuilder.setInterfaceTypeChoice(tapCase);\r
+\r
} else if (isValidQRouterPort(port)) {\r
TapCase tapCase = new TapCaseBuilder().setPhysicalAddress(new PhysAddress(port.getMacAddress().getValue()))\r
.setName(createQRouterPortName(port.getUuid()))\r
.build();\r
vppEpBuilder.setInterfaceTypeChoice(tapCase);\r
- vppEpBuilder.addAugmentation(ExcludeFromPolicy.class,\r
- new ExcludeFromPolicyBuilder().setExcludeFromPolicy(true).build());\r
+ vppEpBuilder.addAugmentation(ExcludeFromPolicy.class, excludeFromPolicy);\r
+\r
} else if (isValidVppRouterPort(port)) {\r
if (!DEFAULT_NODE.equals(routingNode.getValue())) {\r
LOG.warn(\r
}\r
}\r
}\r
- vppEpBuilder.addAugmentation(ExcludeFromPolicy.class,\r
- new ExcludeFromPolicyBuilder().setExcludeFromPolicy(true).build());\r
+ vppEpBuilder.addAugmentation(ExcludeFromPolicy.class, excludeFromPolicy);\r
vppEpBuilder.setInterfaceTypeChoice(getLoopbackCase(port));\r
}\r
return vppEpBuilder.build();\r