Upgrading ACL implementation
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / sf / EtherTypeClassifier.java
index 4799587a7754f33db6951572899296aedf6b6d3a..ce10b2ed7d3ec311f44d8e5f51084ab88263e9b2 100755 (executable)
@@ -71,10 +71,24 @@ public class EtherTypeClassifier extends Classifier {
 
     @Override
     GbpAceBuilder update(GbpAceBuilder ruleBuilder, Map<String, ParameterValue> params) {
-        // ETHER_TYPE matching not supported yet
+        Long etherType = getEtherTypeValue(params);
+        if (!ruleBuilder.getEtherType().isPresent() && etherType != null) {
+            if (EtherTypeClassifierDefinition.IPv4_VALUE.equals(etherType)) {
+                ruleBuilder.setIpv4EtherType();
+            } else if (EtherTypeClassifierDefinition.IPv6_VALUE.equals(etherType)) {
+                ruleBuilder.setIpv6EtherType();
+            }
+        }
         return ruleBuilder;
     }
 
+    private static Long getEtherTypeValue(Map<String, ParameterValue> params) {
+        if (params == null || params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM) == null) {
+            return null;
+        }
+        return params.get(EtherTypeClassifierDefinition.ETHERTYPE_PARAM).getIntValue();
+    }
+
     @Override
     void checkPrereqs(GbpAceBuilder matchBuilders) {
         // Nothing to consider yet.