Policy exclusions & parallel netconf transactions
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / commands / TapPortCommand.java
index 2021f5182526b5f2b8d9360e8cc3747b1f0d2964..5bec8b4f36cb9ea43c96af4d45fee8d7848d85f8 100644 (file)
@@ -8,26 +8,27 @@
 
 package org.opendaylight.groupbasedpolicy.renderer.vpp.commands;
 
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
 import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General;
 import org.opendaylight.groupbasedpolicy.renderer.vpp.util.General.Operations;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceBuilder;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.InterfaceKey;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.Tap;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.VppInterfaceAugmentation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.VppInterfaceAugmentationBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.interfaces._interface.L2Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.interfaces._interface.TapBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.l2.base.attributes.interconnection.BridgeBasedBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.Tap;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VppInterfaceAugmentation;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.VppInterfaceAugmentationBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.L2Builder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.RoutingBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.interfaces._interface.TapBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170607.l2.config.attributes.interconnection.BridgeBasedBuilder;
+
+import com.google.common.base.Preconditions;
+import com.google.common.base.Strings;
 
-public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
+public class TapPortCommand extends AbstractInterfaceCommand {
 
     private String tapName;
     private PhysAddress physAddress;
-    private String bridgeDomain;
     private Long deviceInstance;
 
     private TapPortCommand(TapPortCommandBuilder builder) {
@@ -39,6 +40,7 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
         this.description = builder.getDescription();
         this.bridgeDomain = builder.getBridgeDomain();
         this.deviceInstance = builder.getDeviceInstance();
+        this.enableProxyArp = builder.getEnableProxyArp();
     }
 
     public static TapPortCommandBuilder builder() {
@@ -49,10 +51,6 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
         return physAddress;
     }
 
-    public String getBridgeDomain() {
-        return bridgeDomain;
-    }
-
     public Long getDeviceInstance() {
         return deviceInstance;
     }
@@ -64,26 +62,31 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
     @Override
     public InterfaceBuilder getInterfaceBuilder() {
         InterfaceBuilder interfaceBuilder = new InterfaceBuilder().setKey(new InterfaceKey(name))
-            .setEnabled(enabled)
-            .setDescription(description)
-            .setType(Tap.class)
-            .setName(name)
-            .setLinkUpDownTrapEnable(Interface.LinkUpDownTrapEnable.Enabled);
+                .setEnabled(enabled)
+                .setDescription(description)
+                .setType(Tap.class)
+                .setName(name)
+                .setLinkUpDownTrapEnable(Interface.LinkUpDownTrapEnable.Enabled);
 
         // Create the Tap augmentation
         VppInterfaceAugmentationBuilder vppAugmentationBuilder =
                 new VppInterfaceAugmentationBuilder().setTap(new TapBuilder().setMac(this.physAddress)
-                    .setTapName(this.tapName)
-                    .setMac(this.physAddress)
-                    .setDeviceInstance(this.deviceInstance)
-                    .build());
+                        .setTapName(this.tapName)
+                        .setMac(this.physAddress)
+                        .setDeviceInstance(this.deviceInstance)
+                        .build());
+
+        if (getVrfId() != null) {
+            vppAugmentationBuilder.setRouting(new RoutingBuilder().setIpv4VrfId(getVrfId()).build());
+        }
 
         if (!Strings.isNullOrEmpty(bridgeDomain)) {
             vppAugmentationBuilder.setL2(new L2Builder()
-                .setInterconnection(new BridgeBasedBuilder().setBridgeDomain(bridgeDomain).build()).build());
+                    .setInterconnection(new BridgeBasedBuilder().setBridgeDomain(bridgeDomain).build()).build());
         }
 
         interfaceBuilder.addAugmentation(VppInterfaceAugmentation.class, vppAugmentationBuilder.build());
+        addEnableProxyArpAugmentation(interfaceBuilder);
         return interfaceBuilder;
     }
 
@@ -104,8 +107,10 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
         private String description;
         private Long deviceInstance = null;
         private boolean enabled = true;
+        private Boolean enableProxyArp;
+        private Long vrfId;
 
-        public String getInterfaceName() {
+        String getInterfaceName() {
             return interfaceName;
         }
 
@@ -114,7 +119,7 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
             return this;
         }
 
-        public String getTapName() {
+        String getTapName() {
             return tapName;
         }
 
@@ -132,7 +137,7 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
             return this;
         }
 
-        public PhysAddress getPhysAddress() {
+        PhysAddress getPhysAddress() {
             return physAddress;
         }
 
@@ -141,11 +146,11 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
             return this;
         }
 
-        public String getBridgeDomain() {
+        String getBridgeDomain() {
             return bridgeDomain;
         }
 
-        public TapPortCommandBuilder setBridgeDomain(String bridgeDomain) {
+        TapPortCommandBuilder setBridgeDomain(String bridgeDomain) {
             this.bridgeDomain = bridgeDomain;
             return this;
         }
@@ -159,24 +164,40 @@ public class TapPortCommand extends AbstractInterfaceCommand<TapPortCommand> {
             return this;
         }
 
-        public Long getDeviceInstance() {
+        Long getDeviceInstance() {
             return deviceInstance;
         }
 
-        public TapPortCommandBuilder setDeviceInstance(Long deviceInstance) {
+        TapPortCommandBuilder setDeviceInstance(Long deviceInstance) {
             this.deviceInstance = deviceInstance;
             return this;
         }
 
-        public boolean isEnabled() {
+        boolean isEnabled() {
             return enabled;
         }
 
-        public TapPortCommandBuilder setEnabled(boolean enabled) {
+        TapPortCommandBuilder setEnabled(boolean enabled) {
             this.enabled = enabled;
             return this;
         }
 
+        public Boolean getEnableProxyArp() {
+            return enableProxyArp;
+        }
+
+        public void setEnableProxyArp(Boolean enableProxyArp) {
+            this.enableProxyArp = enableProxyArp;
+        }
+
+        public Long getVrfId() {
+            return vrfId;
+        }
+
+        public void setVrfId(Long vrfId) {
+            this.vrfId = vrfId;
+        }
+
         /**
          * TapPortCommand build method.
          *