X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=renderers%2Fofoverlay%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fgroupbasedpolicy%2Frenderer%2Fofoverlay%2Fflow%2FOfTableTest.java;h=a4cbd9a303bfe6fb3e5a25ddac78ef764de362a7;hb=e998b9e7911900473228f7fc0318ea370244ed06;hp=e9bae480d43a51f8a00670007bf6f7bd3f54eb71;hpb=d2b598b2db53e4e2f23337478624f16ed7c7745f;p=groupbasedpolicy.git diff --git a/renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/OfTableTest.java b/renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/OfTableTest.java index e9bae480d..a4cbd9a30 100755 --- a/renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/OfTableTest.java +++ b/renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/OfTableTest.java @@ -12,13 +12,13 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import org.opendaylight.groupbasedpolicy.api.sf.L4ClassifierDefinition; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.MockOfContext; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.MockPolicyManager; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.endpoint.MockEndpointManager; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.node.MockSwitchManager; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.AllowAction; import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.Classifier; -import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address; @@ -27,6 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types. import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClauseName; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContextId; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ContractId; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.EndpointGroupId; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.L2BridgeDomainId; @@ -40,28 +41,34 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.EndpointBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.OfOverlayContext; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.OfOverlayContextBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.Segmentation; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.SegmentationBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.HasDirection.Direction; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.action.refs.ActionRefBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRef; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.has.classifier.refs.ClassifierRefBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.TenantBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.ContractBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.EndpointGroupBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2BridgeDomainBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L2FloodDomainBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.L3ContextBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.SubjectFeatureInstancesBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.SubnetBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.ClauseBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.Subject; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.SubjectBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.Rule; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.contract.subject.RuleBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ConsumerNamedSelectorBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.endpoint.group.ProviderNamedSelectorBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstanceBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstanceBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.ForwardingContextBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.PolicyBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2BridgeDomainBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2FloodDomain; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L2FloodDomainBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.L3ContextBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.Subnet; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.forwarding.context.SubnetBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.ContractBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.EndpointGroupBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.SubjectFeatureInstancesBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.ClauseBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.Subject; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.SubjectBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.Rule; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.contract.subject.RuleBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ConsumerNamedSelectorBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.endpoint.group.ProviderNamedSelectorBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ActionInstanceBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.policy.subject.feature.instances.ClassifierInstanceBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId; import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId; @@ -84,9 +91,11 @@ public class OfTableTest { L3ContextId l3c = new L3ContextId("2cf51ee4-e996-467e-a277-2d380334a91d"); L2BridgeDomainId bd = new L2BridgeDomainId("c95182ba-7807-43f8-98f7-6c7c720b7639"); L2FloodDomainId fd = new L2FloodDomainId("98e1439e-52d2-46f8-bd69-5136e6088771"); + L2FloodDomainId ext_fd = new L2FloodDomainId("d8024f7a-b83e-11e5-9912-ba0be0483c18"); SubnetId sub = new SubnetId("4fcf8dfc-53b5-4aef-84d3-6b5586992fcb"); SubnetId sub2 = new SubnetId("c285a59f-fcb8-42e6-bf29-87ea522fd626"); SubnetId sub3 = new SubnetId("a0380d52-2a25-48ef-882c-a4d4cd9e00ec"); + SubnetId ext_sub = new SubnetId("8da17ad9-3261-4dc9-bcff-928a2f73cce7"); TenantId tid = new TenantId("1118c691-8520-47ad-80b8-4cf5e3fe3302"); EndpointGroupId eg = new EndpointGroupId("36dec84a-08c7-497b-80b6-a0035af72a12"); EndpointGroupId eg2 = new EndpointGroupId("632e5e11-7988-4eb5-8fe6-6c182d890276"); @@ -104,91 +113,101 @@ public class OfTableTest { } protected TenantBuilder baseTenant() { - return new TenantBuilder() - .setId(tid) - .setEndpointGroup(ImmutableList.of(new EndpointGroupBuilder() - .setId(eg) - .setNetworkDomain(sub) - .setConsumerNamedSelector(ImmutableList.of(new ConsumerNamedSelectorBuilder() - .setName(new SelectorName("cns1")) - .setContract(ImmutableList.of(cid)) - .build())) - .build(), - new EndpointGroupBuilder() - .setId(eg2) - .setNetworkDomain(sub2) - .setProviderNamedSelector(ImmutableList.of(new ProviderNamedSelectorBuilder() - .setName(new SelectorName("pns1")) - .setContract(ImmutableList.of(cid)) - .build())) - .build())) - .setL3Context(ImmutableList.of(new L3ContextBuilder() - .setId(l3c) - .build())) - .setL2BridgeDomain(ImmutableList.of(new L2BridgeDomainBuilder() - .setId(bd) - .setParent(l3c) - .build())) - .setL2FloodDomain(ImmutableList.of(new L2FloodDomainBuilder() - .setId(fd) - .setParent(bd) - .build())) - .setSubnet(ImmutableList.of(new SubnetBuilder() - .setId(sub2) - .setParent(fd) - .setIpPrefix(new IpPrefix(new Ipv4Prefix("10.0.1.0/24"))) - .setVirtualRouterIp(new IpAddress(new Ipv4Address("10.0.1.1"))) - .build(), - new SubnetBuilder() - .setId(sub) - .setParent(fd) - .setIpPrefix(new IpPrefix(new Ipv4Prefix("10.0.0.0/24"))) - .setVirtualRouterIp(new IpAddress(new Ipv4Address("10.0.0.1"))) - .build(), - new SubnetBuilder() - .setId(sub3) - .setParent(bd) - .setIpPrefix(new IpPrefix(new Ipv4Prefix("10.0.2.0/24"))) - .setVirtualRouterIp(new IpAddress(new Ipv4Address("10.0.2.1"))) - .build())) - .setSubjectFeatureInstances(new SubjectFeatureInstancesBuilder() - .setClassifierInstance(ImmutableList.of(new ClassifierInstanceBuilder() - .setName(new ClassifierName("tcp_dst_80")) - .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId()) - .setParameterValue(ImmutableList.of(new ParameterValueBuilder() - .setName(new ParameterName("destport")) - .setIntValue(Long.valueOf(80)) - .build(), - new ParameterValueBuilder() - .setName(new ParameterName("proto")) - .setIntValue(Long.valueOf(6)) - .build())) - .build(), - new ClassifierInstanceBuilder() - .setName(new ClassifierName("tcp_src_80")) - .setClassifierDefinitionId(Classifier.L4_CL.getId()) - .setParameterValue(ImmutableList.of(new ParameterValueBuilder() - .setName(new ParameterName("sourceport")) - .setIntValue(Long.valueOf(80)) - .build(), - new ParameterValueBuilder() - .setName(new ParameterName("proto")) - .setIntValue(Long.valueOf(6)) - .build())) - .build(), - new ClassifierInstanceBuilder() - .setName(new ClassifierName("ether_type")) - .setClassifierDefinitionId(Classifier.ETHER_TYPE_CL.getId()) - .setParameterValue(ImmutableList.of(new ParameterValueBuilder() - .setName(new ParameterName("ethertype")) - .setIntValue(Long.valueOf(FlowUtils.IPv4)) - .build())) - .build())) - .setActionInstance(ImmutableList.of(new ActionInstanceBuilder() - .setName(new ActionName("allow")) - .setActionDefinitionId(new AllowAction().getId()) - .build())) - .build()); + return new TenantBuilder().setId(tid) + .setPolicy(new PolicyBuilder() + .setEndpointGroup(ImmutableList.of( + new EndpointGroupBuilder().setId(eg) + .setNetworkDomain(sub) + .setConsumerNamedSelector(ImmutableList.of(new ConsumerNamedSelectorBuilder() + .setName(new SelectorName("cns1")).setContract(ImmutableList.of(cid)).build())) + .build(), + new EndpointGroupBuilder().setId(eg2) + .setNetworkDomain(sub2) + .setProviderNamedSelector(ImmutableList.of(new ProviderNamedSelectorBuilder() + .setName(new SelectorName("pns1")).setContract(ImmutableList.of(cid)).build())) + .build())) + .setSubjectFeatureInstances( + new SubjectFeatureInstancesBuilder() + .setClassifierInstance( + ImmutableList + .of(new ClassifierInstanceBuilder().setName(new ClassifierName("tcp_dst_80")) + .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId()) + .setParameterValue(ImmutableList.of( + new ParameterValueBuilder().setName(new ParameterName("destport")) + .setIntValue(Long.valueOf(80)) + .build(), + new ParameterValueBuilder().setName(new ParameterName("proto")) + .setIntValue(Long.valueOf(6)) + .build())) + .build(), new ClassifierInstanceBuilder() + .setName(new ClassifierName("tcp_src_80")) + .setClassifierDefinitionId(Classifier.L4_CL.getId()) + .setParameterValue(ImmutableList.of( + new ParameterValueBuilder() + .setName(new ParameterName("sourceport")) + .setIntValue(Long.valueOf(80)) + .build(), + new ParameterValueBuilder().setName(new ParameterName("proto")) + .setIntValue(Long.valueOf(6)) + .build())) + .build(), + new ClassifierInstanceBuilder() + .setName(new ClassifierName("ether_type")) + .setClassifierDefinitionId(Classifier.ETHER_TYPE_CL.getId()) + .setParameterValue(ImmutableList.of(new ParameterValueBuilder() + .setName(new ParameterName("ethertype")) + .setIntValue(Long.valueOf(FlowUtils.IPv4)) + .build())) + .build())) + .setActionInstance( + ImmutableList.of(new ActionInstanceBuilder().setName(new ActionName("allow")) + .setActionDefinitionId(new AllowAction().getId()) + .build())) + .build()) + .build()) + .setForwardingContext( + new ForwardingContextBuilder() + .setL3Context(ImmutableList.of(new L3ContextBuilder().setId(l3c).build())) + .setL2BridgeDomain( + ImmutableList.of(new L2BridgeDomainBuilder().setId(bd).setParent(l3c).build())) + .setL2FloodDomain(ImmutableList.of( + new L2FloodDomainBuilder() + .setId(fd) + .setParent(bd) + .addAugmentation(Segmentation.class, + new SegmentationBuilder() + .setSegmentationId(Integer.valueOf(216)) + .build()) + .build(), + new L2FloodDomainBuilder() + .setId(ext_fd) + .addAugmentation(Segmentation.class, + new SegmentationBuilder() + .setSegmentationId(Integer.valueOf(2016)) + .build()) + .build())) + .setSubnet(ImmutableList.of( + new SubnetBuilder().setId(sub2) + .setParent(fd) + .setIpPrefix(new IpPrefix(new Ipv4Prefix("10.0.1.0/24"))) + .setVirtualRouterIp(new IpAddress(new Ipv4Address("10.0.1.1"))) + .build(), + new SubnetBuilder().setId(sub) + .setParent(fd) + .setIpPrefix(new IpPrefix(new Ipv4Prefix("10.0.0.0/24"))) + .setVirtualRouterIp(new IpAddress(new Ipv4Address("10.0.0.1"))) + .build(), + new SubnetBuilder().setId(sub3) + .setParent(bd) + .setIpPrefix(new IpPrefix(new Ipv4Prefix("10.0.2.0/24"))) + .setVirtualRouterIp(new IpAddress(new Ipv4Address("10.0.2.1"))) + .build(), + new SubnetBuilder() + .setId(ext_sub) + .setIpPrefix(new IpPrefix(new Ipv4Prefix("192.168.111.0/24"))) + .setParent(ext_fd) + .build())) + .build()); } protected ContractBuilder baseContract(List subjects) {