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) {
this.description = builder.getDescription();
this.bridgeDomain = builder.getBridgeDomain();
this.deviceInstance = builder.getDeviceInstance();
+ this.enableProxyArp = builder.getEnableProxyArp();
}
public static TapPortCommandBuilder builder() {
return physAddress;
}
- public String getBridgeDomain() {
- return bridgeDomain;
- }
-
public Long getDeviceInstance() {
return deviceInstance;
}
@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;
}
private String description;
private Long deviceInstance = null;
private boolean enabled = true;
+ private Boolean enableProxyArp;
+ private Long vrfId;
- public String getInterfaceName() {
+ String getInterfaceName() {
return interfaceName;
}
return this;
}
- public String getTapName() {
+ String getTapName() {
return tapName;
}
return this;
}
- public PhysAddress getPhysAddress() {
+ PhysAddress getPhysAddress() {
return physAddress;
}
return this;
}
- public String getBridgeDomain() {
+ String getBridgeDomain() {
return bridgeDomain;
}
- public TapPortCommandBuilder setBridgeDomain(String bridgeDomain) {
+ TapPortCommandBuilder setBridgeDomain(String bridgeDomain) {
this.bridgeDomain = bridgeDomain;
return this;
}
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.
*