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.opendaylight.params.xml.ns.yang.v3po.rev150105.VhostUserRole;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppInterfaceAugmentation;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VppInterfaceAugmentationBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.L2Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.interfaces._interface.VhostUserBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.l2.base.attributes.interconnection.BridgeBasedBuilder;
-
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.VhostUserRole;
+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.RoutingBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.interfaces._interface.VhostUserBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.l2.base.attributes.interconnection.BridgeBasedBuilder;
-public class VhostUserCommand extends AbstractInterfaceCommand<VhostUserCommand> {
+public class VhostUserCommand extends AbstractInterfaceCommand {
private String socket;
private VhostUserRole role;
- private String bridgeDomain;
private VhostUserCommand(VhostUserCommandBuilder builder) {
this.name = builder.getName();
this.enabled = builder.isEnabled();
this.description = builder.getDescription();
this.bridgeDomain = builder.getBridgeDomain();
+ this.enableProxyArp = builder.getEnableProxyArp();
}
return role;
}
- public String getBridgeDomain() {
- return bridgeDomain;
- }
-
@Override
public InterfaceBuilder getInterfaceBuilder() {
InterfaceBuilder interfaceBuilder =
new InterfaceBuilder().setKey(new InterfaceKey(name))
- .setEnabled(enabled)
- .setDescription(description)
- .setType(
- org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev150105.VhostUser.class)
- .setName(name)
- .setLinkUpDownTrapEnable(Interface.LinkUpDownTrapEnable.Enabled);
+ .setEnabled(enabled)
+ .setDescription(description)
+ .setType(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev170315.VhostUser.class)
+ .setName(name)
+ .setLinkUpDownTrapEnable(Interface.LinkUpDownTrapEnable.Enabled);
// Create the vhost augmentation
VppInterfaceAugmentationBuilder vppAugmentationBuilder = new VppInterfaceAugmentationBuilder()
- .setVhostUser(new VhostUserBuilder().setRole(role).setSocket(socket).build());
+ .setVhostUser(new VhostUserBuilder().setRole(role).setSocket(socket).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 boolean enabled = true;
private String description;
private String bridgeDomain;
+ private Boolean enableProxyArp;
+ private Long vrfId;
public String getName() {
return name;
return this;
}
- public VhostUserRole getRole() {
+ VhostUserRole getRole() {
return role;
}
return this;
}
- public boolean isEnabled() {
+ boolean isEnabled() {
return enabled;
}
- public VhostUserCommandBuilder setEnabled(boolean enabled) {
+ VhostUserCommandBuilder setEnabled(boolean enabled) {
this.enabled = enabled;
return this;
}
return this;
}
- public String getBridgeDomain() {
+ String getBridgeDomain() {
return bridgeDomain;
}
- public VhostUserCommandBuilder setBridgeDomain(String bridgeDomain) {
+ VhostUserCommandBuilder setBridgeDomain(String bridgeDomain) {
this.bridgeDomain = bridgeDomain;
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;
+ }
+
/**
* VhostUserCommand build method.
*