Move definitions of classifiers and actions to 63/28963/12
authorKonstantin Blagov <kblagov@cisco.com>
Thu, 29 Oct 2015 17:47:49 +0000 (18:47 +0100)
committerMartin Sunal <msunal@cisco.com>
Fri, 20 Nov 2015 13:16:40 +0000 (14:16 +0100)
groupbasedpolicy module

Change-Id: Ifa612dee83f9c6b7d8bf20d0707dbd58a3e8ead4
Signed-off-by: Peter Palmar <peter.palmar@pantheon.sk>
Signed-off-by: Konstantin Blagov <kblagov@cisco.com>
Signed-off-by: Martin Sunal <msunal@cisco.com>
39 files changed:
artifacts/pom.xml [changed mode: 0644->0755]
features/pom.xml [changed mode: 0644->0755]
features/src/main/features/features.xml [changed mode: 0644->0755]
groupbasedpolicy/pom.xml [changed mode: 0644->0755]
groupbasedpolicy/src/main/config/default-config.xml [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/impl/GroupbasedpolicyModule.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/impl/GroupbasedpolicyModuleFactory.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/SubjectFeatureDefinitionProvider.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/actions/AllowActionDefinition.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/actions/ChainActionDefinition.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/EtherTypeClassifierDefinition.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/IpProtoClassifierDefinition.java [new file with mode: 0755]
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/L4ClassifierDefinition.java [new file with mode: 0755]
groupbasedpolicy/src/main/yang/groupbasedpolicy-impl.yang [new file with mode: 0755]
groupbasedpolicy/src/main/yang/model/policy.yang
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/infrastructure/NetworkService.java [changed mode: 0644->0755]
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/infrastructure/Router.java
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/mapping/rule/SecRuleEntityDecoder.java [changed mode: 0644->0755]
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/mapping/rule/SecRuleNameDecoder.java
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/util/MappingUtils.java
neutron-mapper/src/test/java/org/opendaylight/groupbasedpolicy/neutron/mapper/mapping/rule/SecRuleEntityDecoderTest.java
neutron-mapper/src/test/java/org/opendaylight/groupbasedpolicy/neutron/mapper/mapping/rule/SecRuleNameDecoderTest.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/SfcManager.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/PolicyEnforcer.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/AllowAction.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ChainAction.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/EtherTypeClassifier.java [changed mode: 0644->0755]
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/IpProtoClassifier.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/L4Classifier.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ParamDerivator.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/SubjectFeatures.java [changed mode: 0644->0755]
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManagerTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/flow/OfTableTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ChainActionTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ClassifierTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/EtherTypeClassifierTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/IpProtoClassifierTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/L4ClassifierTest.java

old mode 100644 (file)
new mode 100755 (executable)
index 86bbf15..0a276b0
       </dependency>
 
       <!-- GBP configuration -->
+      <dependency>
+        <groupId>org.opendaylight.groupbasedpolicy</groupId>
+        <artifactId>groupbasedpolicy</artifactId>
+        <version>${project.version}</version>
+        <type>xml</type>
+        <classifier>config</classifier>
+      </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>ofoverlay-renderer</artifactId>
         <version>${project.version}</version>
         <type>xml</type>
         <classifier>config</classifier>
-      </dependency>      
+      </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>iovisor-renderer</artifactId>
         <version>${project.version}</version>
         <type>xml</type>
         <classifier>config</classifier>
-      </dependency>      
+      </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>netconf-renderer</artifactId>
old mode 100644 (file)
new mode 100755 (executable)
index 7d0d5b9..721a2d5
     </dependency>
 
     <!-- GBP configuration -->
+    <dependency>
+      <groupId>org.opendaylight.groupbasedpolicy</groupId>
+      <artifactId>groupbasedpolicy</artifactId>
+      <type>xml</type>
+      <classifier>config</classifier>
+    </dependency>
     <dependency>
       <groupId>org.opendaylight.groupbasedpolicy</groupId>
       <artifactId>ofoverlay-renderer</artifactId>
old mode 100644 (file)
new mode 100755 (executable)
index f8150b0..e7422e2
@@ -34,6 +34,7 @@
         <feature version='${mdsal.version}'>odl-mdsal-binding-base</feature>
         <feature version='${mdsal.model.version}'>odl-mdsal-models</feature>
         <bundle>mvn:org.opendaylight.groupbasedpolicy/groupbasedpolicy/{{VERSION}}</bundle>
+        <configfile finalname="${config.configfile.directory}/15-groupbasedpolicy-base.xml">mvn:org.opendaylight.groupbasedpolicy/groupbasedpolicy/{{VERSION}}/xml/config</configfile>
     </feature>
 
     <!--
old mode 100644 (file)
new mode 100755 (executable)
index bdb7d6f..a9dfe57
@@ -16,7 +16,7 @@
 
   <groupId>org.opendaylight.groupbasedpolicy</groupId>
   <artifactId>groupbasedpolicy</artifactId>
-  <version>0.3.0-SNAPSHOT</version> 
+  <version>0.3.0-SNAPSHOT</version>
   <packaging>bundle</packaging>
   <name>groupbasedpolicy-base</name>
 
@@ -57,6 +57,8 @@
               org.opendaylight.controller.config.yang.config.endpoint_provider,
               org.opendaylight.groupbasedpolicy.endpoint,
               org.opendaylight.groupbasedpolicy.resolver.*,
+              org.opendaylight.groupbasedpolicy.sf.actions.*,
+              org.opendaylight.groupbasedpolicy.sf.classifiers.*,
               org.opendaylight.groupbasedpolicy.util,
             </Export-Package>
           </instructions>
diff --git a/groupbasedpolicy/src/main/config/default-config.xml b/groupbasedpolicy/src/main/config/default-config.xml
new file mode 100755 (executable)
index 0000000..3f684ca
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<snapshot>
+    <configuration>
+        <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
+            <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config">
+                <module>
+                    <type xmlns:groupbasedpolicy="urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:impl">
+                        groupbasedpolicy:groupbasedpolicy-impl
+                    </type>
+                    <name>groupbasedpolicy-impl</name>
+
+                    <data-broker>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type>
+                        <name>binding-data-broker</name>
+                    </data-broker>
+
+                </module>
+            </modules>
+        </data>
+
+    </configuration>
+
+    <required-capabilities>
+        <capability>urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:impl?module=groupbasedpolicy-impl&amp;revision=2015-11-06</capability>
+    </required-capabilities>
+
+</snapshot>
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/impl/GroupbasedpolicyModule.java b/groupbasedpolicy/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/impl/GroupbasedpolicyModule.java
new file mode 100755 (executable)
index 0000000..087c8e5
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.config.yang.config.groupbasedpolicy.impl;
+
+import com.google.common.base.Preconditions;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.groupbasedpolicy.sf.SubjectFeatureDefinitionProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class GroupbasedpolicyModule extends
+        org.opendaylight.controller.config.yang.config.groupbasedpolicy.impl.AbstractGroupbasedpolicyModule {
+
+    private static final Logger LOG = LoggerFactory.getLogger(GroupbasedpolicyModule.class);
+
+    public GroupbasedpolicyModule(
+            org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) {
+        super(identifier, dependencyResolver);
+    }
+
+    public GroupbasedpolicyModule(
+            org.opendaylight.controller.config.api.ModuleIdentifier identifier,
+            org.opendaylight.controller.config.api.DependencyResolver dependencyResolver,
+            org.opendaylight.controller.config.yang.config.groupbasedpolicy.impl.GroupbasedpolicyModule oldModule,
+            java.lang.AutoCloseable oldInstance) {
+        super(identifier, dependencyResolver, oldModule, oldInstance);
+    }
+
+    @Override
+    public void customValidation() {
+        // add custom validation form module attributes here.
+    }
+
+    /**
+     * On module start, creates SubjectFeatureDefinitionProvider instance, in order to put known Subject Feature Definitions to operational Datastore
+     *
+     * @return SubjectFeatureDefinitionProvider
+     */
+    @Override
+    public java.lang.AutoCloseable createInstance() {
+        DataBroker dataProvider = Preconditions.checkNotNull(getDataBrokerDependency());
+
+        try {
+            return new SubjectFeatureDefinitionProvider(dataProvider);
+        } catch (TransactionCommitFailedException e) {
+            LOG.error("Error creating instance of SubjectFeatureDefinitionProvider; Subject Feature Definitions were not put to Datastore");
+            throw new RuntimeException(e);
+        }
+    }
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/impl/GroupbasedpolicyModuleFactory.java b/groupbasedpolicy/src/main/java/org/opendaylight/controller/config/yang/config/groupbasedpolicy/impl/GroupbasedpolicyModuleFactory.java
new file mode 100755 (executable)
index 0000000..5357dc7
--- /dev/null
@@ -0,0 +1,13 @@
+/*
+* Generated file
+*
+* Generated from: yang module name: groupbasedpolicy-impl yang module local name: groupbasedpolicy-impl
+* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
+* Generated at: Fri Nov 06 13:54:27 CET 2015
+*
+* Do not modify this file unless it is present under src/main directory
+*/
+package org.opendaylight.controller.config.yang.config.groupbasedpolicy.impl;
+public class GroupbasedpolicyModuleFactory extends org.opendaylight.controller.config.yang.config.groupbasedpolicy.impl.AbstractGroupbasedpolicyModuleFactory {
+
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/SubjectFeatureDefinitionProvider.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/SubjectFeatureDefinitionProvider.java
new file mode 100755 (executable)
index 0000000..dd2b530
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.sf;
+
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
+import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.groupbasedpolicy.sf.actions.AllowActionDefinition;
+import org.opendaylight.groupbasedpolicy.sf.actions.ChainActionDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * On creation, puts known Subject Feature Definitions to operational datastore; deletes them on #close()
+ */
+public class SubjectFeatureDefinitionProvider implements AutoCloseable {
+    private static final Logger LOG =
+            LoggerFactory.getLogger(SubjectFeatureDefinitionProvider.class);
+
+    private final DataBroker dataProvider;
+
+    /**
+     * Puts known Subject Feature Definitions to operational datastore
+     *
+     * @param dataProvider DataBroker
+     * @throws TransactionCommitFailedException
+     */
+    public SubjectFeatureDefinitionProvider(DataBroker dataProvider)
+            throws TransactionCommitFailedException {
+        this.dataProvider = dataProvider;
+
+        putSubjectFeatureDefinitions();
+    }
+
+    @Override
+    public void close() throws Exception {
+        deleteSubjectFeatureDefinitions();
+    }
+
+    private void putSubjectFeatureDefinitions() throws TransactionCommitFailedException {
+        WriteTransaction wt = this.dataProvider.newWriteOnlyTransaction();
+
+        wt.put(LogicalDatastoreType.OPERATIONAL, EtherTypeClassifierDefinition.IID,
+                EtherTypeClassifierDefinition.DEFINITION);
+        wt.put(LogicalDatastoreType.OPERATIONAL, IpProtoClassifierDefinition.IID,
+                IpProtoClassifierDefinition.DEFINITION);
+        wt.put(LogicalDatastoreType.OPERATIONAL, L4ClassifierDefinition.IID,
+                L4ClassifierDefinition.DEFINITION);
+
+        wt.put(LogicalDatastoreType.OPERATIONAL, AllowActionDefinition.IID,
+                AllowActionDefinition.DEFINITION);
+        wt.put(LogicalDatastoreType.OPERATIONAL, ChainActionDefinition.IID,
+                ChainActionDefinition.DEFINITION);
+
+        wt.submit().checkedGet();
+    }
+
+    private void deleteSubjectFeatureDefinitions() throws TransactionCommitFailedException {
+        WriteTransaction wt = this.dataProvider.newWriteOnlyTransaction();
+
+        wt.delete(LogicalDatastoreType.OPERATIONAL, EtherTypeClassifierDefinition.IID);
+        wt.delete(LogicalDatastoreType.OPERATIONAL, IpProtoClassifierDefinition.IID);
+        wt.delete(LogicalDatastoreType.OPERATIONAL, L4ClassifierDefinition.IID);
+
+        wt.delete(LogicalDatastoreType.OPERATIONAL, AllowActionDefinition.IID);
+        wt.delete(LogicalDatastoreType.OPERATIONAL, ChainActionDefinition.IID);
+
+        wt.submit().checkedGet();
+    }
+
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/actions/AllowActionDefinition.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/actions/AllowActionDefinition.java
new file mode 100755 (executable)
index 0000000..ab0d137
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.sf.actions;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinitionBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+/**
+ * Allow action
+ */
+public class AllowActionDefinition {
+
+    public static final ActionDefinitionId ID = new ActionDefinitionId("f942e8fd-e957-42b7-bd18-f73d11266d17");
+    /**
+     * Access control - allow action-definition
+     */
+    public static final ActionDefinition DEFINITION = new ActionDefinitionBuilder().setId(ID)
+        .setName(new ActionName("allow"))
+        .setDescription(new Description("Allow the specified traffic to pass"))
+        .build();
+
+    public static final InstanceIdentifier IID =
+            InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
+                    .child(ActionDefinition.class, DEFINITION.getKey())
+                    .build();
+
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/actions/ChainActionDefinition.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/actions/ChainActionDefinition.java
new file mode 100755 (executable)
index 0000000..f00cbc2
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.sf.actions;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinitionBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+public class ChainActionDefinition {
+
+    public static final ActionDefinitionId ID = new ActionDefinitionId("3d886be7-059f-4c4f-bbef-0356bea40933");
+
+    public static final Integer CHAIN_CONDITION_GROUP = 0xfffffe;
+
+    //protected static final String TYPE = "type";
+
+    // the chain action
+    public static final String SFC_CHAIN_ACTION = "chain";
+
+    // the parameter used for storing the chain name
+    public static final String SFC_CHAIN_NAME = "sfc-chain-name";
+
+    public static final ActionDefinition DEFINITION = new ActionDefinitionBuilder().setId(ID)
+        .setName(new ActionName(SFC_CHAIN_ACTION))
+        .setDescription(new Description("Send the traffic through a Service Function Chain"))
+        .setParameter(
+                (ImmutableList.of(new ParameterBuilder().setName(new ParameterName(SFC_CHAIN_NAME))
+                    .setDescription(new Description("The named chain to match against"))
+                    .setIsRequired(IsRequired.Required)
+                    .setType(Type.String)
+                    .build())))
+        .build();
+
+    public static final InstanceIdentifier IID =
+            InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
+                    .child(ActionDefinition.class, DEFINITION.getKey())
+                    .build();
+
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/EtherTypeClassifierDefinition.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/EtherTypeClassifierDefinition.java
new file mode 100755 (executable)
index 0000000..8275ec2
--- /dev/null
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.sf.classifiers;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+/**
+ * Match on the ether type of the traffic
+ */
+public class EtherTypeClassifierDefinition {
+
+    /**
+     * Ethertype parameter name
+     */
+    public static final String ETHERTYPE_PARAM = "ethertype";
+    /**
+     * ARP ethertype value
+     */
+    public static final Long ARP_VALUE = Long.valueOf(0x0806);
+    /**
+     * IPv4 ethertype value
+     */
+    public static final Long IPv4_VALUE = Long.valueOf(0x0800);
+    /**
+     * IPv6 ethertype value
+     */
+    public static final Long IPv6_VALUE = Long.valueOf(0x86DD);
+
+    public static final ClassifierDefinitionId ID = new ClassifierDefinitionId(
+            "6a48ab45-a462-429d-b18c-3a575b2c8bef");
+    /**
+     * Ethertype classifier-definition
+     */
+    public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(ID)
+        .setName(new ClassifierName("ether_type"))
+        .setDescription(new Description("Match on the ether type of the traffic"))
+        .setParameter(
+                ImmutableList.of(new ParameterBuilder().setName(new ParameterName(ETHERTYPE_PARAM))
+                    .setDescription(new Description("The ethertype to match against"))
+                    .setIsRequired(IsRequired.Required)
+                    .setType(Type.Int)
+                    .build()))
+        .build();
+
+    public static final InstanceIdentifier IID =
+            InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
+                    .child(ClassifierDefinition.class, DEFINITION.getKey())
+                    .build();
+
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/IpProtoClassifierDefinition.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/IpProtoClassifierDefinition.java
new file mode 100755 (executable)
index 0000000..9da66b3
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.sf.classifiers;
+
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+/**
+ * Match on the IP protocol of IP traffic
+ */
+public class IpProtoClassifierDefinition {
+
+    /**
+     * Protocol parameter name
+     */
+    public static final String PROTO_PARAM = "proto";
+    /**
+     * TCP protocol value
+     */
+    public static final Long TCP_VALUE = Long.valueOf(6);
+    /**
+     * UDP protocol value
+     */
+    public static final Long UDP_VALUE = Long.valueOf(17);
+    /**
+     * ICMP protocol value
+     */
+    public static final Long ICMP_VALUE = Long.valueOf(1);
+    /**
+     * SCTP protocol value
+     */
+    public static final Long SCTP_VALUE = Long.valueOf(132);
+
+    public static final ClassifierDefinitionId ID =
+            new ClassifierDefinitionId("79c6fdb2-1e1a-4832-af57-c65baf5c2335");
+    /**
+     * Protocol classifier-definition
+     */
+    public static final ClassifierDefinition DEFINITION =
+            new ClassifierDefinitionBuilder().setId(ID)
+                    .setName(new ClassifierName("ip_proto"))
+                    .setDescription(new Description("Match on the IP protocol of IP traffic"))
+                    .setParameter(ImmutableList.of(
+                                    new ParameterBuilder().setName(new ParameterName(PROTO_PARAM))
+                                            .setDescription(new Description(
+                                                    "The IP protocol to match against"))
+                                            .setIsRequired(IsRequired.Required)
+                                            .setType(Type.Int)
+                                            .build()))
+                    .build();
+
+    public static final InstanceIdentifier IID =
+            InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
+                    .child(ClassifierDefinition.class, DEFINITION.getKey())
+                    .build();
+
+}
diff --git a/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/L4ClassifierDefinition.java b/groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/classifiers/L4ClassifierDefinition.java
new file mode 100755 (executable)
index 0000000..da922cf
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.groupbasedpolicy.sf.classifiers;
+
+import com.google.common.collect.ImmutableList;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+
+/**
+ * Match against TCP or UDP, and source and/or destination ports
+ */
+public class L4ClassifierDefinition {
+
+    /**
+     * Source port parameter name
+     */
+    public static final String SRC_PORT_PARAM = "sourceport";
+    /**
+     * Source port range parameter name
+     */
+    public static final String SRC_PORT_RANGE_PARAM = "sourceport_range";
+    /**
+     * Destination port parameter name
+     */
+    public static final String DST_PORT_PARAM = "destport";
+    /**
+     * Destination port range parameter name
+     */
+    public static final String DST_PORT_RANGE_PARAM = "destport_range";
+
+    public static final ClassifierDefinitionId ID = new ClassifierDefinitionId(
+            "4250ab32-e8b8-445a-aebb-e1bd2cdd291f");
+    /**
+     * Layer 4 classifier-definition
+     */
+    public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(
+            new ClassifierDefinitionId("4250ab32-e8b8-445a-aebb-e1bd2cdd291f"))
+        .setName(new ClassifierName("l4"))
+        .setDescription(new Description("Match on the port number of UDP or TCP traffic"))
+        .setParameter(
+                ImmutableList.of(
+                        new ParameterBuilder().setName(new ParameterName(SRC_PORT_PARAM))
+                            .setDescription(new Description("The source port number to match against"))
+                            .setType(Type.Int)
+                            .build(),
+                        new ParameterBuilder().setName(new ParameterName(SRC_PORT_RANGE_PARAM))
+                            .setDescription(new Description("The source port range to match against"))
+                            .setType(Type.Range)
+                            .build(),
+                        new ParameterBuilder().setName(new ParameterName(DST_PORT_PARAM))
+                            .setDescription(new Description("The destination port number to match against"))
+                            .setType(Type.Int)
+                            .build(), new ParameterBuilder().setName(new ParameterName(DST_PORT_RANGE_PARAM))
+                            .setDescription(new Description("The destination port range to match against"))
+                            .setType(Type.Range)
+                            .build()))
+        .build();
+
+    public static final InstanceIdentifier IID =
+            InstanceIdentifier.builder(SubjectFeatureDefinitions.class)
+                    .child(ClassifierDefinition.class, DEFINITION.getKey())
+                    .build();
+
+}
diff --git a/groupbasedpolicy/src/main/yang/groupbasedpolicy-impl.yang b/groupbasedpolicy/src/main/yang/groupbasedpolicy-impl.yang
new file mode 100755 (executable)
index 0000000..b03f020
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+module groupbasedpolicy-impl {
+    yang-version 1;
+    namespace "urn:opendaylight:params:xml:ns:yang:controller:config:groupbasedpolicy:impl";
+    prefix "groupbasedpolicy-impl";
+
+    import config { prefix config; revision-date 2013-04-05; }
+    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
+
+    description
+        "This module contains the base YANG definitions for
+          groupbasedpolicy impl implementation.";
+
+    revision "2015-11-06" {
+        description
+            "Initial revision.";
+    }
+
+    identity groupbasedpolicy-impl {
+        base "config:module-type";
+
+        config:java-name-prefix Groupbasedpolicy;
+    }
+
+    // Augments the 'configuration' choice node under modules/module.
+    augment "/config:modules/config:module/config:configuration" {
+        case groupbasedpolicy-impl {
+            when "/config:modules/config:module/config:type = 'groupbasedpolicy-impl'";
+
+            //wires in the data-broker service
+            container data-broker {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity mdsal:binding-async-data-broker;
+                    }
+                }
+            }
+        }
+    }
+}
index 5de985909005acda8949be3dede850db849a9a0b..caa7325cb1b9672cb34a25e1c95b18832dffb786 100755 (executable)
@@ -680,14 +680,6 @@ module policy {
                     "A user-visible name for the classifier definition";
                 type gbp-common:classifier-name;
             }
-
-            leaf parent {
-                description
-                    "Parent classifier definition from which we inherit";
-                type leafref {
-                    path "/subject-feature-definitions/classifier-definition/id";
-                }
-            }
         }
 
         list action-definition {
@@ -710,14 +702,6 @@ module policy {
                 description "A user-visible name for the action";
                 type gbp-common:action-name;
             }
-
-            leaf parent {
-                description
-                    "Parent action definition from which we inherit";
-                type leafref {
-                    path "/subject-feature-definitions/action-definition/id";
-                }
-            }
         }
     }
 
@@ -843,7 +827,7 @@ module policy {
                 }
                 list gateways {
                     description
-                        "External gateways for subnets we serve, 
+                        "External gateways for subnets we serve,
                         includes prefixes for static routing";
                     key "gateway";
                     leaf gateway {
@@ -855,7 +839,7 @@ module policy {
                             type inet:ip-prefix;
                         }
                     }
-                    
+
                 }
             }
 
old mode 100644 (file)
new mode 100755 (executable)
index b495774..1556129
@@ -20,8 +20,10 @@ import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.Utils;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.EtherTypeClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.IpProtoClassifier;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.L4Classifier;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
 import org.opendaylight.groupbasedpolicy.util.IidFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
@@ -425,32 +427,32 @@ public class NetworkService {
     // ###################### DHCP
     private static ClassifierInstance createDhcpIpv4ClientServer() {
         return new ClassifierInstanceBuilder().setName(DHCP_IPV4_CLIENT_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.UDP_VALUE,
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.UDP_VALUE,
                     DHCP_IPV4_CLIENT_PORT, DHCP_IPV4_SERVER_PORT))
             .build();
     }
 
     private static ClassifierInstance createDhcpIpv4ServerClient() {
         return new ClassifierInstanceBuilder().setName(DHCP_IPV4_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.UDP_VALUE,
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.UDP_VALUE,
                     DHCP_IPV4_SERVER_PORT, DHCP_IPV4_CLIENT_PORT))
             .build();
     }
 
     private static ClassifierInstance createDhcpIpv6ClientServer() {
         return new ClassifierInstanceBuilder().setName(DHCP_IPV6_CLIENT_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.UDP_VALUE,
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.UDP_VALUE,
                     DHCP_IPV6_CLIENT_PORT, DHCP_IPV6_SERVER_PORT))
             .build();
     }
 
     private static ClassifierInstance createDhcpIpv6ServerClient() {
         return new ClassifierInstanceBuilder().setName(DHCP_IPV6_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.UDP_VALUE,
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.UDP_VALUE,
                     DHCP_IPV6_SERVER_PORT, DHCP_IPV6_CLIENT_PORT))
             .build();
     }
@@ -458,114 +460,114 @@ public class NetworkService {
     // ###################### DNS UDP
     private static ClassifierInstance createDnsUdpIpv4ClientServer() {
         return new ClassifierInstanceBuilder().setName(DNS_UDP_IPV4_CLIENT_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.UDP_VALUE, null, DNS_SERVER_PORT))
+                    createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.UDP_VALUE, null, DNS_SERVER_PORT))
             .build();
     }
 
     private static ClassifierInstance createDnsUdpIpv4ServerClient() {
         return new ClassifierInstanceBuilder().setName(DNS_UDP_IPV4_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.UDP_VALUE, DNS_SERVER_PORT, null))
+                    createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.UDP_VALUE, DNS_SERVER_PORT, null))
             .build();
     }
 
     private static ClassifierInstance createDnsUdpIpv6ClientServer() {
         return new ClassifierInstanceBuilder().setName(DNS_UDP_IPV6_CLIENT_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.UDP_VALUE, null, DNS_SERVER_PORT))
+                    createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.UDP_VALUE, null, DNS_SERVER_PORT))
             .build();
     }
 
     private static ClassifierInstance createDnsUdpIpv6ServerClient() {
         return new ClassifierInstanceBuilder().setName(DNS_UDP_IPV6_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.UDP_VALUE, DNS_SERVER_PORT, null))
+                    createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.UDP_VALUE, DNS_SERVER_PORT, null))
             .build();
     }
 
     // ###################### DNS TCP
     private static ClassifierInstance createDnsTcpIpv4ClientServer() {
         return new ClassifierInstanceBuilder().setName(DNS_TCP_IPV4_CLIENT_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.TCP_VALUE, null, DNS_SERVER_PORT))
+                    createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.TCP_VALUE, null, DNS_SERVER_PORT))
             .build();
     }
 
     private static ClassifierInstance createDnsTcpIpv4ServerClient() {
         return new ClassifierInstanceBuilder().setName(DNS_TCP_IPV4_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.TCP_VALUE, DNS_SERVER_PORT, null))
+                    createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.TCP_VALUE, DNS_SERVER_PORT, null))
             .build();
     }
 
     private static ClassifierInstance createDnsTcpIpv6ClientServer() {
         return new ClassifierInstanceBuilder().setName(DNS_TCP_IPV6_CLIENT_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.TCP_VALUE, null, DNS_SERVER_PORT))
+                    createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.TCP_VALUE, null, DNS_SERVER_PORT))
             .build();
     }
 
     private static ClassifierInstance createDnsTcpIpv6ServerClient() {
         return new ClassifierInstanceBuilder().setName(DNS_TCP_IPV6_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.TCP_VALUE, DNS_SERVER_PORT, null))
+                    createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.TCP_VALUE, DNS_SERVER_PORT, null))
             .build();
     }
 
     // ###################### SSH TCP
     private static ClassifierInstance createSshTcpIpv4ClientServer() {
         return new ClassifierInstanceBuilder().setName(SSH_IPV4_CLIENT_TO_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.TCP_VALUE, SSH_TCP_PORT, null))
+                    createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.TCP_VALUE, SSH_TCP_PORT, null))
             .build();
     }
 
     private static ClassifierInstance createSshTcpIpv4ServerClient() {
         return new ClassifierInstanceBuilder().setName(SSH_IPV4_SERVER_TO_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.TCP_VALUE, null, SSH_TCP_PORT))
+                    createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.TCP_VALUE, null, SSH_TCP_PORT))
             .build();
     }
 
     private static ClassifierInstance createSshTcpIpv6ClientServer() {
         return new ClassifierInstanceBuilder().setName(SSH_IPV6_CLIENT_TO_SERVER_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.TCP_VALUE, SSH_TCP_PORT, null))
+                    createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.TCP_VALUE, SSH_TCP_PORT, null))
             .build();
     }
 
     private static ClassifierInstance createSshTcpIpv6ServerClient() {
         return new ClassifierInstanceBuilder().setName(SSH_IPV6_SERVER_TO_CLIENT_NAME)
-            .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())
+            .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())
             .setParameterValue(
-                    createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.TCP_VALUE, null, SSH_TCP_PORT))
+                    createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.TCP_VALUE, null, SSH_TCP_PORT))
             .build();
     }
 
     // ###################### ICMP
     private static ClassifierInstance createIcmpIpv4() {
         return new ClassifierInstanceBuilder().setName(ICMP_IPV4_BETWEEN_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(IpProtoClassifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv4_VALUE, IpProtoClassifier.ICMP_VALUE, null, null))
+            .setClassifierDefinitionId(IpProtoClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv4_VALUE, IpProtoClassifierDefinition.ICMP_VALUE, null, null))
             .build();
     }
 
     private static ClassifierInstance createIcmpIpv6() {
         return new ClassifierInstanceBuilder().setName(ICMP_IPV6_BETWEEN_SERVER_CLIENT_NAME)
-            .setClassifierDefinitionId(IpProtoClassifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv6_VALUE, IpProtoClassifier.ICMP_VALUE, null, null))
+            .setClassifierDefinitionId(IpProtoClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv6_VALUE, IpProtoClassifierDefinition.ICMP_VALUE, null, null))
             .build();
     }
 
@@ -573,22 +575,21 @@ public class NetworkService {
             @Nullable Long dstPort) {
         List<ParameterValue> params = new ArrayList<>();
         if (srcPort != null) {
-            params.add(new ParameterValueBuilder().setName(new ParameterName(L4Classifier.SRC_PORT_PARAM))
+            params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.SRC_PORT_PARAM))
                 .setIntValue(srcPort)
                 .build());
         }
         if (dstPort != null) {
-            params.add(new ParameterValueBuilder().setName(new ParameterName(L4Classifier.DST_PORT_PARAM))
+            params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.DST_PORT_PARAM))
                 .setIntValue(dstPort)
                 .build());
         }
-        params.add(new ParameterValueBuilder().setName(new ParameterName(IpProtoClassifier.PROTO_PARAM))
+        params.add(new ParameterValueBuilder().setName(new ParameterName(IpProtoClassifierDefinition.PROTO_PARAM))
             .setIntValue(proto)
             .build());
-        params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifier.ETHERTYPE_PARAM))
+        params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM))
             .setIntValue(etherType)
             .build());
         return params;
     }
-
 }
index 7d47714169b1a90da15d710fd1f714823521db27..424832ad8c8bbfc4cde07c81c6419185cda50d5e 100644 (file)
@@ -19,7 +19,7 @@ import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.Utils;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.EtherTypeClassifier;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
 import org.opendaylight.groupbasedpolicy.util.IidFactory;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
@@ -234,24 +234,23 @@ public class Router {
 
     private static ClassifierInstance createIpv4() {
         return new ClassifierInstanceBuilder().setName(IPV4_NAME)
-            .setClassifierDefinitionId(EtherTypeClassifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv4_VALUE))
+            .setClassifierDefinitionId(EtherTypeClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv4_VALUE))
             .build();
     }
 
     private static ClassifierInstance createIpv6() {
         return new ClassifierInstanceBuilder().setName(IPV6_NAME)
-            .setClassifierDefinitionId(EtherTypeClassifier.DEFINITION.getId())
-            .setParameterValue(createParams(EtherTypeClassifier.IPv6_VALUE))
+            .setClassifierDefinitionId(EtherTypeClassifierDefinition.DEFINITION.getId())
+            .setParameterValue(createParams(EtherTypeClassifierDefinition.IPv6_VALUE))
             .build();
     }
 
     private static List<ParameterValue> createParams(long etherType) {
         List<ParameterValue> params = new ArrayList<>();
-        params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifier.ETHERTYPE_PARAM))
+        params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM))
             .setIntValue(etherType)
             .build());
         return params;
     }
-
 }
old mode 100644 (file)
new mode 100755 (executable)
index 08a54b4..1e0b2b4
@@ -18,8 +18,9 @@ import javax.annotation.Nullable;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.NeutronUtils;\r
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.Utils;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.EtherTypeClassifier;\r
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.IpProtoClassifier;\r
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.L4Classifier;\r
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;\r
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;\r
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;\r
 import org.opendaylight.neutron.spi.NeutronSecurityRule;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;\r
@@ -84,13 +85,13 @@ public class SecRuleEntityDecoder {
         Integer portMin = secRule.getSecurityRulePortMin();\r
         Integer portMax = secRule.getSecurityRulePortMax();\r
         if (portMin != null && portMax != null) {\r
-            classifierBuilder.setClassifierDefinitionId(L4Classifier.DEFINITION.getId());\r
+            classifierBuilder.setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId());\r
             if (portMin.equals(portMax)) {\r
-                params.add(new ParameterValueBuilder().setName(new ParameterName(L4Classifier.DST_PORT_PARAM))\r
+                params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.DST_PORT_PARAM))\r
                     .setIntValue(portMin.longValue())\r
                     .build());\r
             } else {\r
-                params.add(new ParameterValueBuilder().setName(new ParameterName(L4Classifier.DST_PORT_RANGE_PARAM))\r
+                params.add(new ParameterValueBuilder().setName(new ParameterName(L4ClassifierDefinition.DST_PORT_RANGE_PARAM))\r
                     .setRangeValue(\r
                             new RangeValueBuilder().setMin(portMin.longValue()).setMax(portMax.longValue()).build())\r
                     .build());\r
@@ -99,18 +100,18 @@ public class SecRuleEntityDecoder {
         Long protocol = getProtocol(secRule);\r
         if (protocol != null) {\r
             if (classifierBuilder.getClassifierDefinitionId() == null) {\r
-                classifierBuilder.setClassifierDefinitionId(IpProtoClassifier.DEFINITION.getId());\r
+                classifierBuilder.setClassifierDefinitionId(IpProtoClassifierDefinition.DEFINITION.getId());\r
             }\r
-            params.add(new ParameterValueBuilder().setName(new ParameterName(IpProtoClassifier.PROTO_PARAM))\r
+            params.add(new ParameterValueBuilder().setName(new ParameterName(IpProtoClassifierDefinition.PROTO_PARAM))\r
                 .setIntValue(protocol)\r
                 .build());\r
         }\r
         Long ethertype = getEtherType(secRule);\r
         if (ethertype != null) {\r
             if (classifierBuilder.getClassifierDefinitionId() == null) {\r
-                classifierBuilder.setClassifierDefinitionId(EtherTypeClassifier.DEFINITION.getId());\r
+                classifierBuilder.setClassifierDefinitionId(EtherTypeClassifierDefinition.DEFINITION.getId());\r
             }\r
-            params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifier.ETHERTYPE_PARAM))\r
+            params.add(new ParameterValueBuilder().setName(new ParameterName(EtherTypeClassifierDefinition.ETHERTYPE_PARAM))\r
                 .setIntValue(ethertype)\r
                 .build());\r
         }\r
@@ -214,8 +215,8 @@ public class SecRuleEntityDecoder {
     /**\r
      * @param secRule\r
      * @return {@code null} if {@link NeutronSecurityRule#getSecurityRuleEthertype()} is null or\r
-     *         empty; value of {@link EtherTypeClassifier#IPv4_VALUE} or\r
-     *         {@link EtherTypeClassifier#IPv6_VALUE}\r
+     *         empty; value of {@link EtherTypeClassifierDefinition#IPv4_VALUE} or\r
+     *         {@link EtherTypeClassifierDefinition#IPv6_VALUE}\r
      * @throws IllegalArgumentException if return value of\r
      *         {@link NeutronSecurityRule#getSecurityRuleEthertype()} is not empty/null and is other\r
      *         than "IPv4" or "IPv6"\r
@@ -226,10 +227,10 @@ public class SecRuleEntityDecoder {
             return null;\r
         }\r
         if (NeutronUtils.IPv4.equals(ethertype)) {\r
-            return EtherTypeClassifier.IPv4_VALUE;\r
+            return EtherTypeClassifierDefinition.IPv4_VALUE;\r
         }\r
         if (NeutronUtils.IPv6.equals(ethertype)) {\r
-            return EtherTypeClassifier.IPv6_VALUE;\r
+            return EtherTypeClassifierDefinition.IPv6_VALUE;\r
         }\r
         throw new IllegalArgumentException("Ethertype " + ethertype + " is not supported.");\r
     }\r
@@ -248,15 +249,14 @@ public class SecRuleEntityDecoder {
             return null;\r
         }\r
         if (NeutronUtils.TCP.equals(protocol)) {\r
-            return IpProtoClassifier.TCP_VALUE;\r
+            return IpProtoClassifierDefinition.TCP_VALUE;\r
         }\r
         if (NeutronUtils.UDP.equals(protocol)) {\r
-            return IpProtoClassifier.UDP_VALUE;\r
+            return IpProtoClassifierDefinition.UDP_VALUE;\r
         }\r
         if (NeutronUtils.ICMP.equals(protocol)) {\r
-            return IpProtoClassifier.ICMP_VALUE;\r
+            return IpProtoClassifierDefinition.ICMP_VALUE;\r
         }\r
         throw new IllegalArgumentException("Protocol " + protocol + " is not supported.");\r
     }\r
-\r
 }\r
index fc1c801bcba624e2dd11138bca67b216956e4ae4..29b66a2a1d7ac2fba6c460acfbb33424ca1000ab 100644 (file)
@@ -9,9 +9,9 @@
 package org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule;
 
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.EtherTypeClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.IpProtoClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.L4Classifier;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
 import org.opendaylight.neutron.spi.NeutronSecurityRule;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClauseName;
@@ -57,15 +57,15 @@ public class SecRuleNameDecoder {
         Integer portMin = secRule.getSecurityRulePortMin();
         Integer portMax = secRule.getSecurityRulePortMax();
         if (portMin != null && portMax != null) {
-            keyBuilder.append(L4Classifier.DEFINITION.getName().getValue());
+            keyBuilder.append(L4ClassifierDefinition.DEFINITION.getName().getValue());
             if (portMin.equals(portMax)) {
                 keyBuilder.append(MappingUtils.NAME_DELIMETER)
-                    .append(L4Classifier.DST_PORT_PARAM)
+                    .append(L4ClassifierDefinition.DST_PORT_PARAM)
                     .append(MappingUtils.NAME_VALUE_DELIMETER)
                     .append(portMin.longValue());
             } else {
                 keyBuilder.append(MappingUtils.NAME_DELIMETER)
-                    .append(L4Classifier.DST_PORT_RANGE_PARAM)
+                    .append(L4ClassifierDefinition.DST_PORT_RANGE_PARAM)
                     .append(MIN_PORT)
                     .append(MappingUtils.NAME_VALUE_DELIMETER)
                     .append(portMin.longValue())
@@ -79,7 +79,7 @@ public class SecRuleNameDecoder {
             if (keyBuilder.length() > 0) {
                 keyBuilder.append(MappingUtils.NAME_DOUBLE_DELIMETER);
             }
-            keyBuilder.append(IpProtoClassifier.DEFINITION.getName().getValue())
+            keyBuilder.append(IpProtoClassifierDefinition.DEFINITION.getName().getValue())
                 .append(MappingUtils.NAME_VALUE_DELIMETER)
                 .append(protocol);
         }
@@ -88,7 +88,7 @@ public class SecRuleNameDecoder {
             if (keyBuilder.length() > 0) {
                 keyBuilder.append(MappingUtils.NAME_DOUBLE_DELIMETER);
             }
-            keyBuilder.append(EtherTypeClassifier.DEFINITION.getName().getValue())
+            keyBuilder.append(EtherTypeClassifierDefinition.DEFINITION.getName().getValue())
                 .append(MappingUtils.NAME_VALUE_DELIMETER)
                 .append(ethertype);
         }
index 23423e6a2dba9519a4ed3f89845390ced5f796b6..037739520f58433dd667b9d3b3e57c1e33485f6e 100644 (file)
@@ -13,7 +13,7 @@ import java.util.List;
 import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.NeutronPortAware;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.AllowAction;
+import org.opendaylight.groupbasedpolicy.sf.actions.AllowActionDefinition;
 import org.opendaylight.groupbasedpolicy.util.DataStoreHelper;
 import org.opendaylight.groupbasedpolicy.util.IidFactory;
 import org.opendaylight.neutron.spi.Neutron_IPs;
@@ -41,7 +41,7 @@ public final class MappingUtils {
     public static final String NEUTRON_GROUP = "neutron_group-";
     public static final ActionInstance ACTION_ALLOW = new ActionInstanceBuilder().setName(
             new ActionName("Allow"))
-        .setActionDefinitionId(AllowAction.DEFINITION.getId())
+        .setActionDefinitionId(AllowActionDefinition.DEFINITION.getId())
         .build();
     public static final List<ActionRef> ACTION_REF_ALLOW =
             ImmutableList.of(new ActionRefBuilder().setName(ACTION_ALLOW.getName()).setOrder(0).build());
index bdead5d775772d93c7a9e7c406638a86e48f992a..ed4c2d836a1c2d7787f255637f078b63a79e3cae 100644 (file)
@@ -11,13 +11,11 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
-import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule.SecRuleEntityDecoder;
-import org.opendaylight.groupbasedpolicy.neutron.mapper.mapping.rule.SecRuleNameDecoder;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.NeutronUtils;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.EtherTypeClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.IpProtoClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.L4Classifier;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
 import org.opendaylight.neutron.spi.NeutronSecurityRule;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
@@ -280,9 +278,9 @@ public class SecRuleEntityDecoderTest {
     public final void testGetClassifierInstance_onlyEthertype() {
         secRule.setSecurityRuleEthertype(NeutronUtils.IPv4);
         ClassifierInstance ci = SecRuleEntityDecoder.getClassifierInstance(secRule);
-        Assert.assertEquals(EtherTypeClassifier.DEFINITION.getId(), ci.getClassifierDefinitionId());
+        Assert.assertEquals(EtherTypeClassifierDefinition.DEFINITION.getId(), ci.getClassifierDefinitionId());
         // name is ether_type_IPv4
-        String expectedName = new StringBuilder().append(EtherTypeClassifier.DEFINITION.getName().getValue())
+        String expectedName = new StringBuilder().append(EtherTypeClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.IPv4)
             .toString();
@@ -292,8 +290,8 @@ public class SecRuleEntityDecoderTest {
         Assert.assertNotNull(parameterValues);
         Assert.assertEquals(1, parameterValues.size());
         ParameterValue parameter = parameterValues.get(0);
-        Assert.assertEquals(EtherTypeClassifier.ETHERTYPE_PARAM, parameter.getName().getValue());
-        assertClassifierParameterValue(parameter, EtherTypeClassifier.IPv4_VALUE, null, null);
+        Assert.assertEquals(EtherTypeClassifierDefinition.ETHERTYPE_PARAM, parameter.getName().getValue());
+        assertClassifierParameterValue(parameter, EtherTypeClassifierDefinition.IPv4_VALUE, null, null);
     }
 
     @Test
@@ -301,13 +299,13 @@ public class SecRuleEntityDecoderTest {
         secRule.setSecurityRuleEthertype(NeutronUtils.IPv4);
         secRule.setSecurityRuleProtocol(NeutronUtils.TCP);
         ClassifierInstance ci = SecRuleEntityDecoder.getClassifierInstance(secRule);
-        Assert.assertEquals(IpProtoClassifier.DEFINITION.getId(), ci.getClassifierDefinitionId());
+        Assert.assertEquals(IpProtoClassifierDefinition.DEFINITION.getId(), ci.getClassifierDefinitionId());
         // name is ip_proto_tcp__ether_type_IPv4
-        String expectedName = new StringBuilder().append(IpProtoClassifier.DEFINITION.getName().getValue())
+        String expectedName = new StringBuilder().append(IpProtoClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.TCP)
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(EtherTypeClassifier.DEFINITION.getName().getValue())
+            .append(EtherTypeClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.IPv4)
             .toString();
@@ -320,12 +318,12 @@ public class SecRuleEntityDecoderTest {
         for (ParameterValue parameter : parameterValues) {
             ParameterName parameterName = parameter.getName();
             Assert.assertNotNull(parameterName);
-            if (EtherTypeClassifier.ETHERTYPE_PARAM.equals(parameterName.getValue())) {
+            if (EtherTypeClassifierDefinition.ETHERTYPE_PARAM.equals(parameterName.getValue())) {
                 containsEthertypeParam = true;
-                assertClassifierParameterValue(parameter, EtherTypeClassifier.IPv4_VALUE, null, null);
-            } else if (IpProtoClassifier.PROTO_PARAM.equals(parameterName.getValue())) {
+                assertClassifierParameterValue(parameter, EtherTypeClassifierDefinition.IPv4_VALUE, null, null);
+            } else if (IpProtoClassifierDefinition.PROTO_PARAM.equals(parameterName.getValue())) {
                 containsProtoParam = true;
-                assertClassifierParameterValue(parameter, IpProtoClassifier.TCP_VALUE, null, null);
+                assertClassifierParameterValue(parameter, IpProtoClassifierDefinition.TCP_VALUE, null, null);
             } else {
                 fail("This parameter is not expected: " + parameter);
             }
@@ -341,19 +339,19 @@ public class SecRuleEntityDecoderTest {
         secRule.setSecurityRulePortMin(5);
         secRule.setSecurityRulePortMax(5);
         ClassifierInstance ci = SecRuleEntityDecoder.getClassifierInstance(secRule);
-        Assert.assertEquals(L4Classifier.DEFINITION.getId(), ci.getClassifierDefinitionId());
+        Assert.assertEquals(L4ClassifierDefinition.DEFINITION.getId(), ci.getClassifierDefinitionId());
         // name is l4_destport-5__ip_proto-tcp__ether_type-IPv4
-        String expectedName = new StringBuilder().append(L4Classifier.DEFINITION.getName().getValue())
+        String expectedName = new StringBuilder().append(L4ClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_DELIMETER)
-            .append(L4Classifier.DST_PORT_PARAM)
+            .append(L4ClassifierDefinition.DST_PORT_PARAM)
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(secRule.getSecurityRulePortMin())
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(IpProtoClassifier.DEFINITION.getName().getValue())
+            .append(IpProtoClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.TCP)
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(EtherTypeClassifier.DEFINITION.getName().getValue())
+            .append(EtherTypeClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.IPv4)
             .toString();
@@ -367,13 +365,13 @@ public class SecRuleEntityDecoderTest {
         for (ParameterValue parameter : parameterValues) {
             ParameterName parameterName = parameter.getName();
             Assert.assertNotNull(parameterName);
-            if (EtherTypeClassifier.ETHERTYPE_PARAM.equals(parameterName.getValue())) {
+            if (EtherTypeClassifierDefinition.ETHERTYPE_PARAM.equals(parameterName.getValue())) {
                 containsEthertypeParam = true;
-                assertClassifierParameterValue(parameter, EtherTypeClassifier.IPv4_VALUE, null, null);
-            } else if (IpProtoClassifier.PROTO_PARAM.equals(parameterName.getValue())) {
+                assertClassifierParameterValue(parameter, EtherTypeClassifierDefinition.IPv4_VALUE, null, null);
+            } else if (IpProtoClassifierDefinition.PROTO_PARAM.equals(parameterName.getValue())) {
                 containsProtoParam = true;
-                assertClassifierParameterValue(parameter, IpProtoClassifier.TCP_VALUE, null, null);
-            } else if (L4Classifier.DST_PORT_PARAM.equals(parameterName.getValue())) {
+                assertClassifierParameterValue(parameter, IpProtoClassifierDefinition.TCP_VALUE, null, null);
+            } else if (L4ClassifierDefinition.DST_PORT_PARAM.equals(parameterName.getValue())) {
                 containsDstPortParam = true;
                 assertClassifierParameterValue(parameter, 5L, null, null);
             } else {
@@ -399,11 +397,11 @@ public class SecRuleEntityDecoderTest {
         secRule.setSecurityRulePortMin(5);
         secRule.setSecurityRulePortMax(10);
         ClassifierInstance ci = SecRuleEntityDecoder.getClassifierInstance(secRule);
-        Assert.assertEquals(L4Classifier.DEFINITION.getId(), ci.getClassifierDefinitionId());
+        Assert.assertEquals(L4ClassifierDefinition.DEFINITION.getId(), ci.getClassifierDefinitionId());
         // name is l4_destport_range_min-5_max-10__ip_proto-tcp__ether_type-IPv4
-        String expectedName = new StringBuilder().append(L4Classifier.DEFINITION.getName().getValue())
+        String expectedName = new StringBuilder().append(L4ClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_DELIMETER)
-            .append(L4Classifier.DST_PORT_RANGE_PARAM)
+            .append(L4ClassifierDefinition.DST_PORT_RANGE_PARAM)
             .append(SecRuleNameDecoder.MIN_PORT)
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(secRule.getSecurityRulePortMin())
@@ -411,11 +409,11 @@ public class SecRuleEntityDecoderTest {
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(secRule.getSecurityRulePortMax())
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(IpProtoClassifier.DEFINITION.getName().getValue())
+            .append(IpProtoClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.TCP)
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(EtherTypeClassifier.DEFINITION.getName().getValue())
+            .append(EtherTypeClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append(NeutronUtils.IPv4)
             .toString();
@@ -652,13 +650,13 @@ public class SecRuleEntityDecoderTest {
     @Test
     public final void testGetEtherType_ethertypeIPv4() {
         secRule.setSecurityRuleEthertype("IPv4");
-        Assert.assertEquals(EtherTypeClassifier.IPv4_VALUE, SecRuleEntityDecoder.getEtherType(secRule));
+        Assert.assertEquals(EtherTypeClassifierDefinition.IPv4_VALUE, SecRuleEntityDecoder.getEtherType(secRule));
     }
 
     @Test
     public final void testGetEtherType_ethertypeIPv6() {
         secRule.setSecurityRuleEthertype("IPv6");
-        Assert.assertEquals(EtherTypeClassifier.IPv6_VALUE, SecRuleEntityDecoder.getEtherType(secRule));
+        Assert.assertEquals(EtherTypeClassifierDefinition.IPv6_VALUE, SecRuleEntityDecoder.getEtherType(secRule));
     }
 
     @Test
@@ -683,19 +681,19 @@ public class SecRuleEntityDecoderTest {
     @Test
     public final void testGetProtocol_protoTcp() {
         secRule.setSecurityRuleProtocol("tcp");
-        Assert.assertEquals(IpProtoClassifier.TCP_VALUE, SecRuleEntityDecoder.getProtocol(secRule));
+        Assert.assertEquals(IpProtoClassifierDefinition.TCP_VALUE, SecRuleEntityDecoder.getProtocol(secRule));
     }
 
     @Test
     public final void testGetProtocol_protoUdp() {
         secRule.setSecurityRuleProtocol("udp");
-        Assert.assertEquals(IpProtoClassifier.UDP_VALUE, SecRuleEntityDecoder.getProtocol(secRule));
+        Assert.assertEquals(IpProtoClassifierDefinition.UDP_VALUE, SecRuleEntityDecoder.getProtocol(secRule));
     }
 
     @Test
     public final void testGetProtocol_protoIcmp() {
         secRule.setSecurityRuleProtocol("icmp");
-        Assert.assertEquals(IpProtoClassifier.ICMP_VALUE, SecRuleEntityDecoder.getProtocol(secRule));
+        Assert.assertEquals(IpProtoClassifierDefinition.ICMP_VALUE, SecRuleEntityDecoder.getProtocol(secRule));
     }
 
     @Test
index 10ab3153860d302b0b47c8ec17308477726f16f1..55b97d176f6e9950dd03967c1ced5251a452b65f 100644 (file)
@@ -4,12 +4,11 @@ import static org.junit.Assert.assertEquals;
 
 import org.junit.Before;
 import org.junit.Test;
-
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.MappingUtils;
 import org.opendaylight.groupbasedpolicy.neutron.mapper.util.NeutronUtils;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.EtherTypeClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.IpProtoClassifier;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.L4Classifier;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
 import org.opendaylight.neutron.spi.NeutronSecurityRule;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClauseName;
@@ -45,9 +44,9 @@ public class SecRuleNameDecoderTest {
         secRule.setSecurityRulePortMin(8010);
         secRule.setSecurityRulePortMax(8020);
         StringBuilder frmtBuilder = new StringBuilder();
-        frmtBuilder.append(L4Classifier.DEFINITION.getName().getValue())
+        frmtBuilder.append(L4ClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_DELIMETER)
-            .append(L4Classifier.DST_PORT_RANGE_PARAM)
+            .append(L4ClassifierDefinition.DST_PORT_RANGE_PARAM)
             .append(SecRuleNameDecoder.MIN_PORT)
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append("%d")
@@ -55,11 +54,11 @@ public class SecRuleNameDecoderTest {
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append("%d")
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(IpProtoClassifier.DEFINITION.getName().getValue())
+            .append(IpProtoClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append("%s")
             .append(MappingUtils.NAME_DOUBLE_DELIMETER)
-            .append(EtherTypeClassifier.DEFINITION.getName().getValue())
+            .append(EtherTypeClassifierDefinition.DEFINITION.getName().getValue())
             .append(MappingUtils.NAME_VALUE_DELIMETER)
             .append("%s");
         String frmtClsfName = String.format(frmtBuilder.toString(), 8010, 8020, secRule.getSecurityRuleProtocol(),
index 18e4b94531dd4ef153c040e6ce0d0f25dcd382c6..c599f1eb87cd10bdd8f9e2c81949e07938c1ed42 100755 (executable)
@@ -122,15 +122,16 @@ public class PolicyManager
                     + "Max. table ID would be out of range. Check config-subsystem.\n{}", e);
         }
 
-        if (dataBroker != null) {
-            WriteTransaction t = dataBroker.newWriteOnlyTransaction();
-            t.put(LogicalDatastoreType.OPERATIONAL,
-                  InstanceIdentifier
-                      .builder(SubjectFeatureDefinitions.class)
-                      .build(),
-                  SubjectFeatures.OF_OVERLAY_FEATURES);
-            t.submit();
-        }
+        // TODO this will be writing to capabilities in DS
+//        if (dataBroker != null) {
+//            WriteTransaction t = dataBroker.newWriteOnlyTransaction();
+//            t.put(LogicalDatastoreType.OPERATIONAL,
+//                  InstanceIdentifier
+//                      .builder(SubjectFeatureDefinitions.class)
+//                      .build(),
+//                  SubjectFeatures.OF_OVERLAY_FEATURES);
+//            t.submit();
+//        }
 
         for(Entry<ActionDefinitionId, Action> entry : SubjectFeatures.getActions().entrySet()) {
             policyResolver.registerActionDefinitions(entry.getKey(), entry.getValue());
index e8b52c1a605b51c427de4d82391f658cf987226f..6bdceaca549a91155ceceefb2529c60429c6e6b3 100644 (file)
@@ -24,8 +24,8 @@ import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataCh
 import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.ChainAction;
 import org.opendaylight.groupbasedpolicy.resolver.PolicyResolver;
+import org.opendaylight.groupbasedpolicy.sf.actions.ChainActionDefinition;
 import org.opendaylight.sfc.provider.SfcProviderRpc;
 import org.opendaylight.sfc.provider.api.SfcProviderServiceChainAPI;
 import org.opendaylight.sfc.provider.api.SfcProviderServicePathAPI;
@@ -260,7 +260,7 @@ public class SfcManager implements AutoCloseable, DataChangeListener {
             if (!dao.isPresent()) return;
 
             ActionDefinition ad = dao.get();
-            if (ad.getId().getValue().equals(ChainAction.ID.getValue())) {
+            if (ad.getId().getValue().equals(ChainActionDefinition.ID.getValue())) {
                 /*
                  * We have the state we need:
                  *  1) it's a "CHAIN" action
index d08fcc164e05e361dec459199c1203c13616d596..8a6986975434342b1e9d0f4e61aae8a6fbcfd5e1 100755 (executable)
@@ -25,12 +25,13 @@ import java.util.Set;
 
 import javax.annotation.concurrent.Immutable;
 
+import org.opendaylight.groupbasedpolicy.sf.actions.AllowActionDefinition;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfContext;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils.RegMatch;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.OrdinalFactory.EndpointFwdCtxOrdinals;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.Action;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.AllowAction;
+//import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.AllowAction;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.ClassificationResult;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.Classifier;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.ParamDerivator;
@@ -97,9 +98,9 @@ public class PolicyEnforcer extends FlowTable {
 
     public PolicyEnforcer(OfContext ctx, short tableId) {
         super(ctx);
-        this.TABLE_ID = tableId;
-        this.gotoEgressNatInstruction = gotoTableIns(ctx.getPolicyManager().getTABLEID_EGRESS_NAT());
-        this.gotoExternalInstruction = gotoTableIns(ctx.getPolicyManager().getTABLEID_EXTERNAL_MAPPER());
+        PolicyEnforcer.TABLE_ID = tableId;
+        PolicyEnforcer.gotoEgressNatInstruction = gotoTableIns(ctx.getPolicyManager().getTABLEID_EGRESS_NAT());
+        PolicyEnforcer.gotoExternalInstruction = gotoTableIns(ctx.getPolicyManager().getTABLEID_EXTERNAL_MAPPER());
     }
 
     @Override
@@ -451,7 +452,7 @@ public class PolicyEnforcer extends FlowTable {
                 /*
                  * Convert the GBP Action to one or more OpenFlow Actions
                  */
-                if (!(actionRefList.indexOf(actionRule) == (actionRefList.size() - 1) && action.equals(SubjectFeatures.getAction(AllowAction.DEFINITION.getId())))) {
+                if (!(actionRefList.indexOf(actionRule) == (actionRefList.size() - 1) && action.equals(SubjectFeatures.getAction(AllowActionDefinition.DEFINITION.getId())))) {
                     actionBuilderList = action.updateAction(actionBuilderList, params, actionRule.getOrder(), netElements, policyPair,
                             ofWriter, ctx, direction);
                 }
index 9e6cafa5ccd3b088ab209b92947ad51afdf9a4ef..3ecab01e751d1e44bb7bbe4100609a9f161f4992 100755 (executable)
@@ -13,46 +13,34 @@ import static org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtil
 import java.util.List;
 import java.util.Map;
 
+import org.opendaylight.groupbasedpolicy.sf.actions.AllowActionDefinition;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfContext;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.NetworkElements;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.PolicyPair;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.HasDirection.Direction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinition;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinitionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg7;
 
-
 /**
  * Allow action
  */
 public class AllowAction extends Action {
 
-    protected static final ActionDefinitionId ID = new ActionDefinitionId("f942e8fd-e957-42b7-bd18-f73d11266d17");
-    /**
-     * Access control - allow action-definition
-     */
-    public static final ActionDefinition DEFINITION = new ActionDefinitionBuilder().setId(ID)
-        .setName(new ActionName("allow"))
-        .setDescription(new Description("Allow the specified traffic to pass"))
-        .build();
-
     // How allow is implemented in the PolicyEnforcer table
     private final org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action allow = nxOutputRegAction(NxmNxReg7.class);
 
     @Override
     public ActionDefinitionId getId() {
-        return ID;
+        return AllowActionDefinition.ID;
     }
 
     @Override
     public ActionDefinition getActionDef() {
-        return DEFINITION;
+        return AllowActionDefinition.DEFINITION;
     }
 
     @Override
@@ -79,5 +67,4 @@ public class AllowAction extends Action {
     public boolean isValid(ActionInstance actionInstance) {
         return true;
     }
-
 }
index 73b1e908d08e9db5a66126736cdbb41fe220efce..f590b44b409cb57a400f7118c2e35cd0724ec3ff 100755 (executable)
@@ -8,14 +8,6 @@
 
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-
 import static org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.ChainActionFlows.createChainTunnelFlows;
 import static org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils.nxSetNsiAction;
 import static org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils.nxSetNspAction;
@@ -25,6 +17,7 @@ import java.util.Map;
 
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.groupbasedpolicy.sf.actions.ChainActionDefinition;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfContext;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.NetworkElements;
@@ -49,15 +42,8 @@ import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sfp.rev1407
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.HasDirection.Direction;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinition;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ActionDefinitionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
@@ -66,7 +52,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Iterables;
 
 /**
@@ -78,36 +63,14 @@ public class ChainAction extends Action {
 
     private static final Logger LOG = LoggerFactory.getLogger(ChainAction.class);
 
-    public static final ActionDefinitionId ID = new ActionDefinitionId("3d886be7-059f-4c4f-bbef-0356bea40933");
-
-    public static final Integer CHAIN_CONDITION_GROUP = 0xfffffe;
-
-    protected static final String TYPE = "type";
-
-    // the chain action
-    public static final String SFC_CHAIN_ACTION = "chain";
-    // the parameter used for storing the chain name
-    public static final String SFC_CHAIN_NAME = "sfc-chain-name";
-
-    protected static final ActionDefinition DEF = new ActionDefinitionBuilder().setId(ID)
-        .setName(new ActionName(SFC_CHAIN_ACTION))
-        .setDescription(new Description("Send the traffic through a Service Function Chain"))
-        .setParameter(
-                (ImmutableList.of(new ParameterBuilder().setName(new ParameterName(SFC_CHAIN_NAME))
-                    .setDescription(new Description("The named chain to match against"))
-                    .setIsRequired(IsRequired.Required)
-                    .setType(Type.String)
-                    .build())))
-        .build();
-
     @Override
     public ActionDefinitionId getId() {
-        return ID;
+        return ChainActionDefinition.ID;
     }
 
     @Override
     public ActionDefinition getActionDef() {
-        return DEF;
+        return ChainActionDefinition.DEFINITION;
     }
 
     @Override
@@ -121,7 +84,7 @@ public class ChainAction extends Action {
             LOG.debug("updateAction: Searching for named chain");
             for (String name : params.keySet()) {
                 if (name instanceof String) {
-                    if (name.equals(SFC_CHAIN_NAME)) {
+                    if (name.equals(ChainActionDefinition.SFC_CHAIN_NAME)) {
                         chainName = (String) params.get(name);
                         if (chainName == null) {
                             LOG.error("updateAction: Chain name was null");
@@ -306,7 +269,7 @@ public class ChainAction extends Action {
         if (paramValueList == null)
             return null;
         for (ParameterValue pv : paramValueList) {
-            if (pv.getName().getValue().equals(SFC_CHAIN_NAME)) {
+            if (pv.getName().getValue().equals(ChainActionDefinition.SFC_CHAIN_NAME)) {
                 return pv;
             }
         }
old mode 100644 (file)
new mode 100755 (executable)
index 5f0a5a5..6f1c403
@@ -11,89 +11,50 @@ package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 import java.util.List;
 import java.util.Map;
 
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetTypeBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder;
 
-import com.google.common.collect.ImmutableList;
-
 /**
  * Match on the ether type of the traffic
  */
 public class EtherTypeClassifier extends Classifier {
 
-    /**
-     * Ethertype parameter name
-     */
-    public static final String ETHERTYPE_PARAM = "ethertype";
-    /**
-     * ARP ethertype value
-     */
-    public static final Long ARP_VALUE = Long.valueOf(0x0806);
-    /**
-     * IPv4 ethertype value
-     */
-    public static final Long IPv4_VALUE = Long.valueOf(0x0800);
-    /**
-     * IPv6 ethertype value
-     */
-    public static final Long IPv6_VALUE = Long.valueOf(0x86DD);
-
-    protected static final ClassifierDefinitionId ID = new ClassifierDefinitionId(
-            "6a48ab45-a462-429d-b18c-3a575b2c8bef");
-    /**
-     * Ethertype classifier-definition
-     */
-    public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(ID)
-        .setName(new ClassifierName("ether_type"))
-        .setDescription(new Description("Match on the ether type of the traffic"))
-        .setParameter(
-                ImmutableList.of(new ParameterBuilder().setName(new ParameterName(ETHERTYPE_PARAM))
-                    .setDescription(new Description("The ethertype to match against"))
-                    .setIsRequired(IsRequired.Required)
-                    .setType(Type.Int)
-                    .build()))
-        .build();
-
     protected EtherTypeClassifier(Classifier parent) {
         super(parent);
     }
 
     @Override
     public ClassifierDefinitionId getId() {
-        return ID;
+        return EtherTypeClassifierDefinition.ID;
     }
 
     @Override
     public ClassifierDefinition getClassDef() {
-        return DEFINITION;
+        return EtherTypeClassifierDefinition.DEFINITION;
     }
 
     @Override
     protected void checkPresenceOfRequiredParams(Map<String, ParameterValue> params) {
-        if (params.get(ETHERTYPE_PARAM) == null) {
-            throw new IllegalArgumentException("Parameter " + ETHERTYPE_PARAM + " not specified.");
+        if (params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM) == null) {
+            throw new IllegalArgumentException("Parameter " + EtherTypeClassifierDefinition.ETHERTYPE_PARAM
+                    + " not specified.");
         }
-        if (params.get(ETHERTYPE_PARAM).getIntValue() == null) {
-            throw new IllegalArgumentException("Value of " + ETHERTYPE_PARAM + " parameter is not present.");
+        if (params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM).getIntValue() == null) {
+            throw new IllegalArgumentException("Value of " + EtherTypeClassifierDefinition.ETHERTYPE_PARAM
+                    + " parameter is not present.");
         }
     }
 
     @Override
     protected List<MatchBuilder> update(List<MatchBuilder> matches, Map<String, ParameterValue> params) {
-        Long type = params.get(ETHERTYPE_PARAM).getIntValue();
+        Long type = params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM).getIntValue();
         for (MatchBuilder match : matches) {
             EthernetMatchBuilder em;
             if (match.getEthernetMatch() != null) {
@@ -111,9 +72,9 @@ public class EtherTypeClassifier extends Classifier {
     private void equalOrNotSetValidation(EthernetType ethTypeInMatch, long paramValue) {
         if (ethTypeInMatch != null) {
             if (paramValue != ethTypeInMatch.getType().getValue().longValue()) {
-                throw new IllegalArgumentException("Classification conflict detected at " + ETHERTYPE_PARAM
-                        + " parameter for values " + ethTypeInMatch.getType().getValue() + " and " + paramValue
-                        + ". It is not allowed "
+                throw new IllegalArgumentException("Classification conflict detected at "
+                        + EtherTypeClassifierDefinition.ETHERTYPE_PARAM + " parameter for values "
+                        + ethTypeInMatch.getType().getValue() + " and " + paramValue + ". It is not allowed "
                         + "to assign different values to the same parameter among all the classifiers within one rule.");
             }
         }
index bb276c627c353ba24b0d5fabe6c4accf48338789..039adfed082eecbe284ca1983ff8d8ebc1201452 100644 (file)
@@ -11,92 +11,49 @@ package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 import java.util.List;
 import java.util.Map;
 
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.IsRequired;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder;
 
-import com.google.common.collect.ImmutableList;
-
 /**
  * Match on the IP protocol of IP traffic
  */
 public class IpProtoClassifier extends Classifier {
 
-    /**
-     * Protocol parameter name
-     */
-    public static final String PROTO_PARAM = "proto";
-    /**
-     * TCP protocol value
-     */
-    public static final Long TCP_VALUE = Long.valueOf(6);
-    /**
-     * UDP protocol value
-     */
-    public static final Long UDP_VALUE = Long.valueOf(17);
-    /**
-     * ICMP protocol value
-     */
-    public static final Long ICMP_VALUE = Long.valueOf(1);
-    /**
-     * SCTP protocol value
-     */
-    public static final Long SCTP_VALUE = Long.valueOf(132);
-
-    protected static final ClassifierDefinitionId ID = new ClassifierDefinitionId(
-            "79c6fdb2-1e1a-4832-af57-c65baf5c2335");
-    /**
-     * Protocol classifier-definition
-     */
-    public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(ID)
-        .setParent(EtherTypeClassifier.ID)
-        .setName(new ClassifierName("ip_proto"))
-        .setDescription(new Description("Match on the IP protocol of IP traffic"))
-        .setParameter(
-                ImmutableList.of(new ParameterBuilder().setName(new ParameterName(PROTO_PARAM))
-                    .setDescription(new Description("The IP protocol to match against"))
-                    .setIsRequired(IsRequired.Required)
-                    .setType(Type.Int)
-                    .build()))
-        .build();
-
     protected IpProtoClassifier(Classifier parent) {
         super(parent);
     }
 
     @Override
     public ClassifierDefinitionId getId() {
-        return ID;
+        return IpProtoClassifierDefinition.ID;
     }
 
     @Override
     public ClassifierDefinition getClassDef() {
-        return DEFINITION;
+        return IpProtoClassifierDefinition.DEFINITION;
     }
 
     @Override
     protected void checkPresenceOfRequiredParams(Map<String, ParameterValue> params) {
-        if (params.get(PROTO_PARAM) == null) {
-            throw new IllegalArgumentException("Parameter " + PROTO_PARAM + " not specified.");
+        if (params.get(IpProtoClassifierDefinition.PROTO_PARAM) == null) {
+            throw new IllegalArgumentException("Parameter " + IpProtoClassifierDefinition.PROTO_PARAM
+                    + " not specified.");
         }
-        if (params.get(PROTO_PARAM).getIntValue() == null) {
-            throw new IllegalArgumentException("Value of " + PROTO_PARAM + " parameter is not present.");
+        if (params.get(IpProtoClassifierDefinition.PROTO_PARAM).getIntValue() == null) {
+            throw new IllegalArgumentException("Value of " + IpProtoClassifierDefinition.PROTO_PARAM
+                    + " parameter is not present.");
         }
     }
 
     @Override
     protected List<MatchBuilder> update(List<MatchBuilder> matches, Map<String, ParameterValue> params) {
-        Long proto = params.get(PROTO_PARAM).getIntValue();
+        Long proto = params.get(IpProtoClassifierDefinition.PROTO_PARAM).getIntValue();
         for (MatchBuilder match : matches) {
             IpMatchBuilder imb;
             if (match.getIpMatch() != null) {
@@ -114,7 +71,7 @@ public class IpProtoClassifier extends Classifier {
     private void equalOrNotSetValidation(Short protoInMatch, long paramValue) {
         if (protoInMatch != null) {
             if (paramValue != protoInMatch.longValue()) {
-                throw new IllegalArgumentException("Classification conflict detected at " + PROTO_PARAM
+                throw new IllegalArgumentException("Classification conflict detected at " + IpProtoClassifierDefinition.PROTO_PARAM
                         + " parameter for values " + protoInMatch.shortValue() + " and " + paramValue
                         + ". It is not allowed "
                         + "to assign different values to the same parameter among all the classifiers within one rule.");
@@ -129,11 +86,12 @@ public class IpProtoClassifier extends Classifier {
             try {
                 readEthType = match.getEthernetMatch().getEthernetType().getType().getValue();
             } catch (NullPointerException e) {
-                throw new IllegalArgumentException("Parameter " + EtherTypeClassifier.ETHERTYPE_PARAM + " is missing.");
+                throw new IllegalArgumentException("Parameter " + EtherTypeClassifierDefinition.ETHERTYPE_PARAM
+                        + " is missing.");
             }
             if (!FlowUtils.IPv4.equals(readEthType) && !FlowUtils.IPv6.equals(readEthType)) {
-                throw new IllegalArgumentException("Parameter " + EtherTypeClassifier.ETHERTYPE_PARAM + " must have value "
-                        + FlowUtils.IPv4 + " or " + FlowUtils.IPv6 + ".");
+                throw new IllegalArgumentException("Parameter " + EtherTypeClassifierDefinition.ETHERTYPE_PARAM
+                        + " must have value " + FlowUtils.IPv4 + " or " + FlowUtils.IPv6 + ".");
             }
         }
     }
@@ -147,10 +105,10 @@ public class IpProtoClassifier extends Classifier {
         if (params == null) {
             return null;
         }
-        if (params.get(PROTO_PARAM) == null) {
+        if (params.get(IpProtoClassifierDefinition.PROTO_PARAM) == null) {
             return null;
         }
-        Long proto = params.get(PROTO_PARAM).getIntValue();
+        Long proto = params.get(IpProtoClassifierDefinition.PROTO_PARAM).getIntValue();
         if (proto != null) {
             return proto;
         }
index 4d049634730933e9ef2d8c53a9d80c863632a3ea..6d9966af1af74e67dadbba21d4f1eafab6810f18 100755 (executable)
@@ -14,16 +14,12 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.Description;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ParameterName;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.Parameter.Type;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definition.ParameterBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinition;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.definitions.ClassifierDefinitionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.parameter.value.RangeValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer4Match;
@@ -34,79 +30,31 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatch;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder;
 
-import com.google.common.collect.ImmutableList;
-
 /**
  * Match against TCP or UDP, and source and/or destination ports
  */
 public class L4Classifier extends Classifier {
 
-    /**
-     * Source port parameter name
-     */
-    public static final String SRC_PORT_PARAM = "sourceport";
-    /**
-     * Source port range parameter name
-     */
-    public static final String SRC_PORT_RANGE_PARAM = "sourceport_range";
-    /**
-     * Destination port parameter name
-     */
-    public static final String DST_PORT_PARAM = "destport";
-    /**
-     * Destination port range parameter name
-     */
-    public static final String DST_PORT_RANGE_PARAM = "destport_range";
-
-    protected static final ClassifierDefinitionId ID = new ClassifierDefinitionId(
-            "4250ab32-e8b8-445a-aebb-e1bd2cdd291f");
-    /**
-     * Layer 4 classifier-definition
-     */
-    public static final ClassifierDefinition DEFINITION = new ClassifierDefinitionBuilder().setId(
-            new ClassifierDefinitionId("4250ab32-e8b8-445a-aebb-e1bd2cdd291f"))
-        .setParent(IpProtoClassifier.ID)
-        .setName(new ClassifierName("l4"))
-        .setDescription(new Description("Match on the port number of UDP or TCP traffic"))
-        .setParameter(
-                ImmutableList.of(
-                        new ParameterBuilder().setName(new ParameterName(SRC_PORT_PARAM))
-                            .setDescription(new Description("The source port number to match against"))
-                            .setType(Type.Int)
-                            .build(),
-                        new ParameterBuilder().setName(new ParameterName(SRC_PORT_RANGE_PARAM))
-                            .setDescription(new Description("The source port range to match against"))
-                            .setType(Type.Range)
-                            .build(),
-                        new ParameterBuilder().setName(new ParameterName(DST_PORT_PARAM))
-                            .setDescription(new Description("The destination port number to match against"))
-                            .setType(Type.Int)
-                            .build(), new ParameterBuilder().setName(new ParameterName(DST_PORT_RANGE_PARAM))
-                            .setDescription(new Description("The destination port range to match against"))
-                            .setType(Type.Range)
-                            .build()))
-        .build();
-
     protected L4Classifier(Classifier parent) {
         super(parent);
     }
 
     @Override
     public ClassifierDefinitionId getId() {
-        return ID;
+        return L4ClassifierDefinition.ID;
     }
 
     @Override
     public ClassifierDefinition getClassDef() {
-        return DEFINITION;
+        return L4ClassifierDefinition.DEFINITION;
     }
 
     @Override
     protected void checkPresenceOfRequiredParams(Map<String, ParameterValue> params) {
-        validatePortParam(params, SRC_PORT_PARAM, SRC_PORT_RANGE_PARAM);
-        validatePortParam(params, DST_PORT_PARAM, DST_PORT_RANGE_PARAM);
-        validateRange(params, SRC_PORT_RANGE_PARAM);
-        validateRange(params, DST_PORT_RANGE_PARAM);
+        validatePortParam(params, L4ClassifierDefinition.SRC_PORT_PARAM, L4ClassifierDefinition.SRC_PORT_RANGE_PARAM);
+        validatePortParam(params, L4ClassifierDefinition.DST_PORT_PARAM, L4ClassifierDefinition.DST_PORT_RANGE_PARAM);
+        validateRange(params, L4ClassifierDefinition.SRC_PORT_RANGE_PARAM);
+        validateRange(params, L4ClassifierDefinition.DST_PORT_RANGE_PARAM);
     }
 
     private void validatePortParam(Map<String, ParameterValue> params, String portParam, String portRangeParam) {
@@ -150,8 +98,8 @@ public class L4Classifier extends Classifier {
     public List<MatchBuilder> update(List<MatchBuilder> matches, Map<String, ParameterValue> params) {
         Set<Long> sPorts = new HashSet<>();
         Set<Long> dPorts = new HashSet<>();
-        addToPortSet(params, SRC_PORT_PARAM, SRC_PORT_RANGE_PARAM, sPorts);
-        addToPortSet(params, DST_PORT_PARAM, DST_PORT_RANGE_PARAM, dPorts);
+        addToPortSet(params, L4ClassifierDefinition.SRC_PORT_PARAM, L4ClassifierDefinition.SRC_PORT_RANGE_PARAM, sPorts);
+        addToPortSet(params, L4ClassifierDefinition.DST_PORT_PARAM, L4ClassifierDefinition.DST_PORT_RANGE_PARAM, dPorts);
         List<MatchBuilder> newMatches = new ArrayList<>();
         for (MatchBuilder matchBuilder : matches) {
             Layer4Match l4Match = matchBuilder.getLayer4Match();
@@ -178,16 +126,16 @@ public class L4Classifier extends Classifier {
     private Layer4Match resolveL4Match(Map<String, ParameterValue> params) {
         Long ipProto = IpProtoClassifier.getIpProtoValue(params);
         if (ipProto == null) {
-            throw new IllegalArgumentException("Parameter " + IpProtoClassifier.PROTO_PARAM + " is missing.");
+            throw new IllegalArgumentException("Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + " is missing.");
         }
-        if (IpProtoClassifier.UDP_VALUE.equals(ipProto)) {
+        if (IpProtoClassifierDefinition.UDP_VALUE.equals(ipProto)) {
             return new UdpMatchBuilder().build();
-        } else if (IpProtoClassifier.TCP_VALUE.equals(ipProto)) {
+        } else if (IpProtoClassifierDefinition.TCP_VALUE.equals(ipProto)) {
             return new TcpMatchBuilder().build();
-        } else if (IpProtoClassifier.SCTP_VALUE.equals(ipProto)) {
+        } else if (IpProtoClassifierDefinition.SCTP_VALUE.equals(ipProto)) {
             return new SctpMatchBuilder().build();
         }
-        throw new IllegalArgumentException("Parameter " + IpProtoClassifier.PROTO_PARAM + ": value " + ipProto
+        throw new IllegalArgumentException("Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + ": value " + ipProto
                 + " is not supported.");
     }
 
@@ -314,11 +262,11 @@ public class L4Classifier extends Classifier {
             try {
                 proto = Long.valueOf(match.getIpMatch().getIpProtocol().longValue());
             } catch (NullPointerException e) {
-                throw new IllegalArgumentException("Parameter " + IpProtoClassifier.PROTO_PARAM + " is missing.");
+                throw new IllegalArgumentException("Parameter " + IpProtoClassifierDefinition.PROTO_PARAM + " is missing.");
             }
-            if (!IpProtoClassifier.TCP_VALUE.equals(proto) && !IpProtoClassifier.UDP_VALUE.equals(proto)
-                    && !IpProtoClassifier.SCTP_VALUE.equals(proto)) {
-                throw new IllegalArgumentException("Value of parameter " + IpProtoClassifier.PROTO_PARAM
+            if (!IpProtoClassifierDefinition.TCP_VALUE.equals(proto) && !IpProtoClassifierDefinition.UDP_VALUE.equals(proto)
+                    && !IpProtoClassifierDefinition.SCTP_VALUE.equals(proto)) {
+                throw new IllegalArgumentException("Value of parameter " + IpProtoClassifierDefinition.PROTO_PARAM
                         + " is not supported.");
             }
         }
index b5f66066ebe3f96c1f74db8a33f155cdf0c99272..d62f47b681245aaccdefe5aaf734cd8e8fd7ccb8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -15,6 +15,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
 
@@ -39,12 +40,12 @@ public abstract class ParamDerivator {
         @Override
         public List<Map<String, ParameterValue>> deriveParameter(Map<String, ParameterValue> params) {
 
-            if (!params.containsKey(EtherTypeClassifier.ETHERTYPE_PARAM)) {
+            if (!params.containsKey(EtherTypeClassifierDefinition.ETHERTYPE_PARAM)) {
                 Map<String, ParameterValue> ipv4Params = new HashMap<>(params);
                 Map<String, ParameterValue> ipv6Params = new HashMap<>(params);
-                ipv4Params.put(EtherTypeClassifier.ETHERTYPE_PARAM, new ParameterValueBuilder().setIntValue(FlowUtils.IPv4)
+                ipv4Params.put(EtherTypeClassifierDefinition.ETHERTYPE_PARAM, new ParameterValueBuilder().setIntValue(FlowUtils.IPv4)
                     .build());
-                ipv6Params.put(EtherTypeClassifier.ETHERTYPE_PARAM, new ParameterValueBuilder().setIntValue(FlowUtils.IPv6)
+                ipv6Params.put(EtherTypeClassifierDefinition.ETHERTYPE_PARAM, new ParameterValueBuilder().setIntValue(FlowUtils.IPv6)
                     .build());
                 List<Map<String, ParameterValue>> derivedParams = new ArrayList<>();
                 derivedParams.add(ipv4Params);
old mode 100644 (file)
new mode 100755 (executable)
index 2dd56b2..313a7b6
@@ -11,6 +11,12 @@ package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 import java.util.List;
 import java.util.Map;
 
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.actions.AllowActionDefinition;
+import org.opendaylight.groupbasedpolicy.sf.actions.ChainActionDefinition;
+
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.SubjectFeatureDefinitions;
@@ -29,9 +35,9 @@ import com.google.common.collect.ImmutableMap;
 public class SubjectFeatures {
     private static final Map<ClassifierDefinitionId, Classifier> classifiers =
             ImmutableMap.<ClassifierDefinitionId, Classifier>
-                of(EtherTypeClassifier.ID, Classifier.ETHER_TYPE_CL,
-                   IpProtoClassifier.ID, Classifier.IP_PROTO_CL,
-                   L4Classifier.ID, Classifier.L4_CL);
+                of(EtherTypeClassifierDefinition.ID, Classifier.ETHER_TYPE_CL,
+                   IpProtoClassifierDefinition.ID, Classifier.IP_PROTO_CL,
+                   L4ClassifierDefinition.ID, Classifier.L4_CL);
 
     private static final List<ClassifierDefinition> classifierDefs =
             ImmutableList.copyOf(Collections2.transform(classifiers.values(),
@@ -45,8 +51,8 @@ public class SubjectFeatures {
 
     private static final Map<ActionDefinitionId, Action> actions =
             ImmutableMap.<ActionDefinitionId, Action>
-                of(AllowAction.ID, new AllowAction(),
-                   ChainAction.ID, new ChainAction());
+                of(AllowActionDefinition.ID, new AllowAction(),
+                   ChainActionDefinition.ID, new ChainAction());
 
     private static final List<ActionDefinition> actionDefs =
             ImmutableList.copyOf(Collections2.transform(actions.values(),
index 7ebaf51c81d935e4dc9ffeaa6325813bee7a7c4e..0d87587503569526bdc5ca573ba0933bb363f146 100644 (file)
@@ -117,15 +117,10 @@ public class PolicyManagerTest {
         WriteTransaction ctorWriteTransaction = mock(WriteTransaction.class);
         when(dataBroker.newWriteOnlyTransaction()).thenReturn(ctorWriteTransaction);
         PolicyResolver ctorPolicyResolver = mock(PolicyResolver.class);
-        doNothing().when(ctorWriteTransaction).put(any(LogicalDatastoreType.class),
-                any(InstanceIdentifier.class), any(SubjectFeatureDefinitions.class));
         PolicyManager ctorPolicyManager = new PolicyManager(dataBroker, ctorPolicyResolver,
                 switchManager, endpointManager, rpcRegistry, executor, tableOffset);
         verify(ctorPolicyResolver, atLeastOnce()).registerActionDefinitions(any(ActionDefinitionId.class),
                 any(ActionInstanceValidator.class));
-        verify(ctorWriteTransaction).put(any(LogicalDatastoreType.class),
-                any(InstanceIdentifier.class), any(SubjectFeatureDefinitions.class));
-        verify(ctorWriteTransaction).submit();
     }
 
     @SuppressWarnings("unchecked")
index af4eeed590c6674cd1f65a1aa256cbeea4eeeda7..0ccaa7a972cae4f9362baa07c40c45b7d9db114d 100755 (executable)
@@ -12,14 +12,14 @@ import java.util.ArrayList;
 import java.util.List;\r
 import java.util.Map;\r
 \r
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.endpoint.MockEndpointManager;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.MockPolicyManager;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfContext;\r
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.endpoint.MockEndpointManager;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.node.MockSwitchManager;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.AllowAction;\r
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.Classifier;\r
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf.L4Classifier;\r
 import org.opendaylight.groupbasedpolicy.resolver.MockPolicyResolver;\r
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;\r
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;\r
@@ -159,7 +159,7 @@ public class OfTableTest {
             .setSubjectFeatureInstances(new SubjectFeatureInstancesBuilder()\r
                 .setClassifierInstance(ImmutableList.of(new ClassifierInstanceBuilder()\r
                      .setName(new ClassifierName("tcp_dst_80"))\r
-                     .setClassifierDefinitionId(L4Classifier.DEFINITION.getId())\r
+                     .setClassifierDefinitionId(L4ClassifierDefinition.DEFINITION.getId())\r
                      .setParameterValue(ImmutableList.of(new ParameterValueBuilder()\r
                               .setName(new ParameterName("destport"))\r
                               .setIntValue(Long.valueOf(80))\r
index a6493b9c47f561c537b2e0a4b80c4d46810e26f3..42f39392bbad1ad8d0b4f9384e44a1784d77cac4 100755 (executable)
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -28,13 +28,14 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfContext;
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.OfWriter;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.endpoint.EndpointManager;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.OrdinalFactory.EndpointFwdCtxOrdinals;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.NetworkElements;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.PolicyEnforcer.PolicyPair;
 import org.opendaylight.groupbasedpolicy.resolver.EgKey;
+import org.opendaylight.groupbasedpolicy.sf.actions.ChainActionDefinition;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfcName;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.common.rev151017.SfpName;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.rsp.rev140701.rendered.service.paths.RenderedServicePath;
@@ -120,7 +121,7 @@ public class ChainActionTest {
         List<ActionBuilder> actions = Arrays.asList(actionBuilder);
         Map<String, Object> params = new HashMap<String, Object>();
         String chainName = "chainName";
-        params.put(ChainAction.SFC_CHAIN_NAME, chainName);
+        params.put(ChainActionDefinition.SFC_CHAIN_NAME, chainName);
         Integer order = Integer.valueOf(0);
         OfWriter ofWriter = mock(OfWriter.class);
 
@@ -150,7 +151,7 @@ public class ChainActionTest {
         ActionBuilder actionBuilder = mock(ActionBuilder.class);
         List<ActionBuilder> actions = Arrays.asList(actionBuilder);
         Map<String, Object> params = new HashMap<String, Object>();
-        params.put(ChainAction.SFC_CHAIN_NAME, null);
+        params.put(ChainActionDefinition.SFC_CHAIN_NAME, null);
         Integer order = Integer.valueOf(0);
         NetworkElements netElements = mock(NetworkElements.class);
         PolicyPair policyPair = mock(PolicyPair.class);
@@ -165,7 +166,7 @@ public class ChainActionTest {
         List<ActionBuilder> actions = Arrays.asList(actionBuilder);
         Map<String, Object> params = new HashMap<String, Object>();
         String chainName = "chainName";
-        params.put(ChainAction.SFC_CHAIN_NAME, chainName);
+        params.put(ChainActionDefinition.SFC_CHAIN_NAME, chainName);
         Integer order = Integer.valueOf(0);
         OfWriter ofWriter = mock(OfWriter.class);
 
index e3deebf9aa008a7df1453117f667a7070ea9d024..8fd750d513dccdf620d5d0f30da9f068b181b847 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
- * 
+ *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
@@ -8,13 +8,7 @@
 
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 
-import static org.junit.Assert.*;
-
-import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder;
+import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -26,6 +20,14 @@ import java.util.Set;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatch;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder;
 
 public class ClassifierTest {
 
@@ -40,13 +42,15 @@ public class ClassifierTest {
 
     @Test
     public void updateMatchTest() {
-
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifier.ETHERTYPE_PARAM, FlowUtils.IPv4));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.SRC_PORT_PARAM, 80));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifierDefinition.ETHERTYPE_PARAM,
+                FlowUtils.IPv4));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.SRC_PORT_PARAM, 80));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         ClassificationResult result = Classifier.L4_CL.updateMatch(matches, params);
         assertEquals(true, result.isSuccessfull());
         assertEquals(3, result.getMatchBuilders().size());
index 8595684bb7159035a6311a7c97fd5349b0eb0047..d69b49ef06d476d7a17fea824ae22df10a82e898 100644 (file)
@@ -1,6 +1,6 @@
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -12,6 +12,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
@@ -34,31 +36,35 @@ public class EtherTypeClassifierTest {
 
     @Test
     public void setValueTest() {
-        matches.add(new MatchBuilder()
-                .setIpMatch(ClassifierTestUtils.createIpMatch(ClassifierTestUtils.TCP.shortValue())));
-        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifier.ETHERTYPE_PARAM, FlowUtils.IPv4));
+        matches.add(new MatchBuilder().setIpMatch(ClassifierTestUtils.createIpMatch(ClassifierTestUtils.TCP.shortValue())));
+        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifierDefinition.ETHERTYPE_PARAM,
+                FlowUtils.IPv4));
         matches = Classifier.ETHER_TYPE_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         assertEquals(true, ClassifierTestUtils.TCP.equals(matches.get(0).getIpMatch().getIpProtocol().longValue()));
     }
 
     @Test
     public void overrideByTheSameValueTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE))
-                .setIpMatch(ClassifierTestUtils.createIpMatch(ClassifierTestUtils.UDP.shortValue())));
-        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifier.ETHERTYPE_PARAM, FlowUtils.IPv6));
+        matches.add(new MatchBuilder().setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)).setIpMatch(
+                ClassifierTestUtils.createIpMatch(ClassifierTestUtils.UDP.shortValue())));
+        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifierDefinition.ETHERTYPE_PARAM,
+                FlowUtils.IPv6));
         matches = Classifier.ETHER_TYPE_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         assertEquals(true, ClassifierTestUtils.UDP.equals(matches.get(0).getIpMatch().getIpProtocol().longValue()));
     }
 
     @Test
     public void overrideByDifferentValueTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE))
-                .setIpMatch(ClassifierTestUtils.createIpMatch(ClassifierTestUtils.SCTP.shortValue())));
-        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifier.ETHERTYPE_PARAM, FlowUtils.IPv6));
+        matches.add(new MatchBuilder().setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)).setIpMatch(
+                ClassifierTestUtils.createIpMatch(ClassifierTestUtils.SCTP.shortValue())));
+        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifierDefinition.ETHERTYPE_PARAM,
+                FlowUtils.IPv6));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("Classification conflict detected");
         matches = Classifier.ETHER_TYPE_CL.update(matches, params);
@@ -66,7 +72,8 @@ public class EtherTypeClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters1Test() {
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not specified.");
         Classifier.ETHER_TYPE_CL.checkPresenceOfRequiredParams(params);
@@ -74,7 +81,7 @@ public class EtherTypeClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters2Test() {
-        params.putAll(ImmutableMap.<String, ParameterValue> of(EtherTypeClassifier.ETHERTYPE_PARAM,
+        params.putAll(ImmutableMap.<String, ParameterValue>of(EtherTypeClassifierDefinition.ETHERTYPE_PARAM,
                 new ParameterValueBuilder().build()));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("Value of ethertype parameter is not present");
index 0a60afb6639a727eb801bf46b63e7b067653c4d2..619f907e07bf66192a0f9735a054f27f7bef152a 100644 (file)
@@ -1,6 +1,6 @@
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -12,6 +12,8 @@ import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.opendaylight.groupbasedpolicy.renderer.ofoverlay.flow.FlowUtils;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.EtherTypeClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
@@ -34,31 +36,35 @@ public class IpProtoClassifierTest {
 
     @Test
     public void setValueTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
+        matches.add(new MatchBuilder().setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
         matches = Classifier.IP_PROTO_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         assertEquals(true, ClassifierTestUtils.TCP.equals(matches.get(0).getIpMatch().getIpProtocol().longValue()));
     }
 
     @Test
     public void overrideByTheSameValueTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE))
-                .setIpMatch(ClassifierTestUtils.createIpMatch(ClassifierTestUtils.UDP.shortValue())));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.UDP));
+        matches.add(new MatchBuilder().setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)).setIpMatch(
+                ClassifierTestUtils.createIpMatch(ClassifierTestUtils.UDP.shortValue())));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.UDP));
         matches = Classifier.IP_PROTO_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         assertEquals(true, ClassifierTestUtils.UDP.equals(matches.get(0).getIpMatch().getIpProtocol().longValue()));
     }
 
     @Test
     public void overrideByDifferentValueTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE))
-                .setIpMatch(ClassifierTestUtils.createIpMatch(ClassifierTestUtils.SCTP.shortValue())));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
+        matches.add(new MatchBuilder().setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)).setIpMatch(
+                ClassifierTestUtils.createIpMatch(ClassifierTestUtils.SCTP.shortValue())));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("Classification conflict detected");
         matches = Classifier.IP_PROTO_CL.update(matches, params);
@@ -66,7 +72,8 @@ public class IpProtoClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters1Test() {
-        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifier.ETHERTYPE_PARAM, FlowUtils.IPv4));
+        params.putAll(ClassifierTestUtils.createIntValueParam(EtherTypeClassifierDefinition.ETHERTYPE_PARAM,
+                FlowUtils.IPv4));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not specified");
         Classifier.IP_PROTO_CL.checkPresenceOfRequiredParams(params);
@@ -74,7 +81,7 @@ public class IpProtoClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters2Test() {
-        params.putAll(ImmutableMap.<String, ParameterValue> of(IpProtoClassifier.PROTO_PARAM,
+        params.putAll(ImmutableMap.<String, ParameterValue>of(IpProtoClassifierDefinition.PROTO_PARAM,
                 new ParameterValueBuilder().build()));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("Value of proto parameter is not present");
index 191d31a9fa280bddfd78b1a34f18bfc315c22589..598c247ed9ae52ba84b49053f7445e2d64bc9572 100644 (file)
@@ -1,6 +1,6 @@
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.sf;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -14,6 +14,8 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.IpProtoClassifierDefinition;
+import org.opendaylight.groupbasedpolicy.sf.classifiers.L4ClassifierDefinition;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValue;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.subject.feature.instance.ParameterValueBuilder;
@@ -29,6 +31,7 @@ import com.google.common.collect.ImmutableMap;
 public class L4ClassifierTest {
 
     List<MatchBuilder> matches;
+
     Map<String, ParameterValue> params;
 
     @Rule
@@ -42,13 +45,14 @@ public class L4ClassifierTest {
 
     @Test
     public void setTcpSrcPortTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        matches.add(new MatchBuilder().setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
         Long sPort = Long.valueOf(80);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.SRC_PORT_PARAM, sPort));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.SRC_PORT_PARAM, sPort));
         matches = Classifier.L4_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         TcpMatch match = new TcpMatchBuilder((TcpMatch) matches.get(0).getLayer4Match()).build();
         assertEquals(true, sPort.equals(match.getTcpSourcePort().getValue().longValue()));
         assertEquals(true, match.getTcpDestinationPort() == null);
@@ -57,12 +61,13 @@ public class L4ClassifierTest {
     @Test
     public void setTcpDstPortTest() {
         Long dPort = Long.valueOf(80);
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.DST_PORT_PARAM, dPort));
+        matches.add(new MatchBuilder().setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.DST_PORT_PARAM, dPort));
         matches = Classifier.L4_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         TcpMatch match = new TcpMatchBuilder((TcpMatch) matches.get(0).getLayer4Match()).build();
         assertEquals(true, dPort.equals(match.getTcpDestinationPort().getValue().longValue()));
         assertEquals(true, match.getTcpSourcePort() == null);
@@ -70,14 +75,15 @@ public class L4ClassifierTest {
 
     @Test
     public void setTcpSrcPortDstPortRangeTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        matches.add(new MatchBuilder().setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
         Long srcPort = Long.valueOf(80);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.SRC_PORT_PARAM, srcPort));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.SRC_PORT_PARAM, srcPort));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
         matches = Classifier.L4_CL.update(matches, params);
         Set<Long> dstPorts = new HashSet<>();
@@ -85,9 +91,10 @@ public class L4ClassifierTest {
             assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(match.getEthernetMatch().getEthernetType()));
             assertEquals(true,
                     Long.valueOf(new TcpMatchBuilder((TcpMatch) match.getLayer4Match()).getTcpSourcePort().getValue())
-                            .equals(srcPort));
-            dstPorts.add(new TcpMatchBuilder((TcpMatch) match.getLayer4Match()).getTcpDestinationPort().getValue()
-                    .longValue());
+                        .equals(srcPort));
+            dstPorts.add(new TcpMatchBuilder((TcpMatch) match.getLayer4Match()).getTcpDestinationPort()
+                .getValue()
+                .longValue());
         }
         for (Long i = dstRangeStart; i <= dstRangeEnd; i++) {
             assertEquals(true, dstPorts.contains((i)));
@@ -97,13 +104,14 @@ public class L4ClassifierTest {
     @Test
     public void overrideDstPortWithTheSameValueTest() {
         Long dPort = Long.valueOf(80);
-        matches.add(new MatchBuilder()
-                .setLayer4Match(ClassifierTestUtils.createUdpDstPort(80))
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.UDP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.DST_PORT_PARAM, dPort));
+        matches.add(new MatchBuilder().setLayer4Match(ClassifierTestUtils.createUdpDstPort(80)).setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.UDP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.DST_PORT_PARAM, dPort));
         matches = Classifier.L4_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV6_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         UdpMatch match = new UdpMatchBuilder((UdpMatch) matches.get(0).getLayer4Match()).build();
         assertEquals(true, dPort.equals(match.getUdpDestinationPort().getValue().longValue()));
         assertEquals(true, match.getUdpSourcePort() == null);
@@ -111,24 +119,27 @@ public class L4ClassifierTest {
 
     @Test
     public void addUdpSrcPortRangeTest() {
-        matches.add(new MatchBuilder()
-                .setLayer4Match(ClassifierTestUtils.createUdpDstPort(80))
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        matches.add(new MatchBuilder().setLayer4Match(ClassifierTestUtils.createUdpDstPort(80)).setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
         Long srcRangeStart = Long.valueOf(8079);
         Long srcRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.UDP));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.SRC_PORT_RANGE_PARAM, srcRangeStart, srcRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.UDP));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM,
+                srcRangeStart, srcRangeEnd));
         matches = Classifier.L4_CL.update(matches, params);
         Set<Long> srcPorts = new HashSet<>();
         for (MatchBuilder match : matches) {
             assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(match.getEthernetMatch().getEthernetType()));
             assertEquals(true, new UdpMatchBuilder((UdpMatch) match.getLayer4Match()).getUdpDestinationPort()
-                    .getValue().intValue() == 80);
+                .getValue()
+                .intValue() == 80);
             assertEquals(true, new UdpMatchBuilder((UdpMatch) match.getLayer4Match()).getUdpDestinationPort()
-                    .getValue()
-                    .longValue() == 80);
-            srcPorts.add(new UdpMatchBuilder((UdpMatch) match.getLayer4Match()).getUdpSourcePort().getValue()
-                    .longValue());
+                .getValue()
+                .longValue() == 80);
+            srcPorts.add(new UdpMatchBuilder((UdpMatch) match.getLayer4Match()).getUdpSourcePort()
+                .getValue()
+                .longValue());
         }
         for (Long i = srcRangeStart; i <= srcRangeEnd; i++) {
             assertEquals(true, srcPorts.contains((i)));
@@ -137,15 +148,16 @@ public class L4ClassifierTest {
 
     @Test
     public void setUdpSrcPortRangeDstPortTest() {
-        matches.add(new MatchBuilder()
-                .setLayer4Match(ClassifierTestUtils.createUdpDstPort(80))
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)));
+        matches.add(new MatchBuilder().setLayer4Match(ClassifierTestUtils.createUdpDstPort(80)).setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV6_ETH_TYPE)));
         Long dPort = Long.valueOf(80);
         Long srcRangeStart = Long.valueOf(8079);
         Long srcRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.UDP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.DST_PORT_PARAM, dPort));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.SRC_PORT_RANGE_PARAM, srcRangeStart, srcRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.UDP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.DST_PORT_PARAM, dPort));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM,
+                srcRangeStart, srcRangeEnd));
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
         matches = Classifier.L4_CL.update(matches, params);
         Set<Long> srcPorts = new HashSet<>();
@@ -154,9 +166,11 @@ public class L4ClassifierTest {
             assertEquals(
                     true,
                     dPort.equals(new UdpMatchBuilder((UdpMatch) match.getLayer4Match()).getUdpDestinationPort()
-                            .getValue().longValue()));
+                        .getValue()
+                        .longValue()));
             srcPorts.add(Long.valueOf(new UdpMatchBuilder((UdpMatch) match.getLayer4Match()).getUdpSourcePort()
-                    .getValue().longValue()));
+                .getValue()
+                .longValue()));
         }
         for (Long i = srcRangeStart; i <= srcRangeEnd; i++) {
             assertEquals(true, srcPorts.contains((i)));
@@ -166,13 +180,14 @@ public class L4ClassifierTest {
     @Test
     public void overrideSrcPortWithTheSameValueTest() {
         Long sPort = Long.valueOf(80);
-        matches.add(new MatchBuilder()
-                .setLayer4Match(ClassifierTestUtils.createSctpSrcPort(sPort.intValue()))
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.SCTP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.SRC_PORT_PARAM, sPort));
+        matches.add(new MatchBuilder().setLayer4Match(ClassifierTestUtils.createSctpSrcPort(sPort.intValue()))
+            .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.SCTP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.SRC_PORT_PARAM, sPort));
         matches = Classifier.L4_CL.update(matches, params);
-        assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
+        assertEquals(true,
+                ClassifierTestUtils.IPV4_ETH_TYPE.equals(matches.get(0).getEthernetMatch().getEthernetType()));
         SctpMatch match = new SctpMatchBuilder((SctpMatch) matches.get(0).getLayer4Match()).build();
         assertEquals(true, sPort.equals(match.getSctpSourcePort().getValue().longValue()));
         assertEquals(true, match.getSctpDestinationPort() == null);
@@ -180,21 +195,24 @@ public class L4ClassifierTest {
 
     @Test
     public void addSctpDstPortRangeTest() {
-        matches.add(new MatchBuilder()
-                .setLayer4Match(ClassifierTestUtils.createSctpSrcPort(80))
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        matches.add(new MatchBuilder().setLayer4Match(ClassifierTestUtils.createSctpSrcPort(80)).setEthernetMatch(
+                ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.SCTP));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.SCTP));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         matches = Classifier.L4_CL.update(matches, params);
         Set<Long> dstPorts = new HashSet<>();
         for (MatchBuilder match : matches) {
             assertEquals(true, ClassifierTestUtils.IPV4_ETH_TYPE.equals(match.getEthernetMatch().getEthernetType()));
-            assertEquals(true, new SctpMatchBuilder((SctpMatch) match.getLayer4Match()).getSctpSourcePort().getValue()
-                    .intValue() == 80);
+            assertEquals(true, new SctpMatchBuilder((SctpMatch) match.getLayer4Match()).getSctpSourcePort()
+                .getValue()
+                .intValue() == 80);
             dstPorts.add(Long.valueOf(new SctpMatchBuilder((SctpMatch) match.getLayer4Match()).getSctpDestinationPort()
-                    .getValue().longValue()));
+                .getValue()
+                .longValue()));
         }
         for (Long i = dstRangeStart; i <= dstRangeEnd; i++) {
             assertEquals(true, dstPorts.contains((i)));
@@ -203,23 +221,27 @@ public class L4ClassifierTest {
 
     @Test
     public void setSctpSrcPortRangeDstPortRangeTest() {
-        matches.add(new MatchBuilder()
-                .setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
+        matches.add(new MatchBuilder().setEthernetMatch(ClassifierTestUtils.createEthernetMatch(ClassifierTestUtils.IPV4_ETH_TYPE)));
         Long srcRangeStart = Long.valueOf(79);
         Long srcRangeEnd = Long.valueOf(81);
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.SCTP));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.SRC_PORT_RANGE_PARAM, srcRangeStart, srcRangeEnd));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.SCTP));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM,
+                srcRangeStart, srcRangeEnd));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
         matches = Classifier.L4_CL.update(matches, params);
         Set<Pair<Long, Long>> set = new HashSet<>();
         for (MatchBuilder match : matches) {
             Long srcPort = Long.valueOf(new SctpMatchBuilder((SctpMatch) match.getLayer4Match()).getSctpSourcePort()
-                    .getValue().longValue());
-            Long dstPort = Long.valueOf(new SctpMatchBuilder((SctpMatch) match.getLayer4Match())
-                    .getSctpDestinationPort().getValue().longValue());
+                .getValue()
+                .longValue());
+            Long dstPort = Long.valueOf(new SctpMatchBuilder((SctpMatch) match.getLayer4Match()).getSctpDestinationPort()
+                .getValue()
+                .longValue());
             set.add(Pair.of(srcPort, dstPort));
         }
         for (Long i = srcRangeStart; i <= srcRangeEnd; i++) {
@@ -235,9 +257,11 @@ public class L4ClassifierTest {
         Long srcRangeStart = Long.valueOf(8079);
         Long srcRangeEnd = Long.valueOf(8081);
         Long srcPort = Long.valueOf(80);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.SCTP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.SRC_PORT_PARAM, srcPort));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.SRC_PORT_RANGE_PARAM, srcRangeStart, srcRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.SCTP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.SRC_PORT_PARAM, srcPort));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM,
+                srcRangeStart, srcRangeEnd));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("mutually exclusive");
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
@@ -249,9 +273,11 @@ public class L4ClassifierTest {
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
         Long dstPort = Long.valueOf(80);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.UDP));
-        params.putAll(ClassifierTestUtils.createIntValueParam(L4Classifier.DST_PORT_PARAM, dstPort));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.UDP));
+        params.putAll(ClassifierTestUtils.createIntValueParam(L4ClassifierDefinition.DST_PORT_PARAM, dstPort));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("mutually exclusive");
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
@@ -262,8 +288,10 @@ public class L4ClassifierTest {
         matches.add(new MatchBuilder());
         Long dstRangeStart = Long.valueOf(8081);
         Long dstRangeEnd = Long.valueOf(8079);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.TCP));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.TCP));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("Range value mismatch");
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
@@ -274,8 +302,9 @@ public class L4ClassifierTest {
         matches.add(new MatchBuilder());
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, 136));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM, 136));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not supported");
         matches = Classifier.L4_CL.update(matches, params);
@@ -283,12 +312,13 @@ public class L4ClassifierTest {
 
     @Test
     public void classificationConflictTest() {
-        matches.add(new MatchBuilder()
-                .setLayer4Match(ClassifierTestUtils.createSctpDstPort(80)));
+        matches.add(new MatchBuilder().setLayer4Match(ClassifierTestUtils.createSctpDstPort(80)));
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifier.PROTO_PARAM, ClassifierTestUtils.UDP));
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createIntValueParam(IpProtoClassifierDefinition.PROTO_PARAM,
+                ClassifierTestUtils.UDP));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("Classification conflict");
         matches = Classifier.L4_CL.update(matches, params);
@@ -299,15 +329,16 @@ public class L4ClassifierTest {
         matches.add(new MatchBuilder());
         Long dstRangeStart = Long.valueOf(8079);
         Long dstRangeEnd = Long.valueOf(8081);
-        params.putAll(ClassifierTestUtils.createRangeValueParam(L4Classifier.DST_PORT_RANGE_PARAM, dstRangeStart, dstRangeEnd));
+        params.putAll(ClassifierTestUtils.createRangeValueParam(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
+                dstRangeStart, dstRangeEnd));
         thrown.expect(IllegalArgumentException.class);
-        thrown.expectMessage(IpProtoClassifier.PROTO_PARAM + " is missing");
+        thrown.expectMessage(IpProtoClassifierDefinition.PROTO_PARAM + " is missing");
         matches = Classifier.L4_CL.update(matches, params);
     }
 
     @Test
     public void checkPresenceOfRequiredParameters1Test() {
-        params.putAll(ImmutableMap.<String, ParameterValue> of(L4Classifier.SRC_PORT_PARAM,
+        params.putAll(ImmutableMap.<String, ParameterValue>of(L4ClassifierDefinition.SRC_PORT_PARAM,
                 new ParameterValueBuilder().build()));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not specified");
@@ -316,7 +347,7 @@ public class L4ClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters2Test() {
-        params.putAll(ImmutableMap.<String, ParameterValue> of(L4Classifier.DST_PORT_PARAM,
+        params.putAll(ImmutableMap.<String, ParameterValue>of(L4ClassifierDefinition.DST_PORT_PARAM,
                 new ParameterValueBuilder().build()));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not specified");
@@ -325,7 +356,7 @@ public class L4ClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters3Test() {
-        params.putAll(ImmutableMap.<String, ParameterValue> of(L4Classifier.SRC_PORT_RANGE_PARAM,
+        params.putAll(ImmutableMap.<String, ParameterValue>of(L4ClassifierDefinition.SRC_PORT_RANGE_PARAM,
                 new ParameterValueBuilder().build()));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not present");
@@ -334,11 +365,10 @@ public class L4ClassifierTest {
 
     @Test
     public void checkPresenceOfRequiredParameters4Test() {
-        params.putAll(ImmutableMap.<String, ParameterValue> of(L4Classifier.DST_PORT_RANGE_PARAM,
+        params.putAll(ImmutableMap.<String, ParameterValue>of(L4ClassifierDefinition.DST_PORT_RANGE_PARAM,
                 new ParameterValueBuilder().build()));
         thrown.expect(IllegalArgumentException.class);
         thrown.expectMessage("not present");
         Classifier.L4_CL.checkPresenceOfRequiredParams(params);
     }
-
 }