package org.opendaylight.netvirt.ipv6service;
+import io.netty.util.Timeout;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.opendaylight.netvirt.ipv6service.utils.Ipv6Constants;
+import org.opendaylight.netvirt.ipv6service.utils.Ipv6PeriodicTimer;
import org.opendaylight.netvirt.ipv6service.utils.Ipv6ServiceUtils;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
private String dpId;
private String deviceOwner;
private Long ofPort;
+ private Boolean serviceBindingStatus;
private HashMap<Uuid, SubnetInfo> snetInfo;
+ private Ipv6PeriodicTimer periodicTimer;
+ private Timeout periodicTimeout;
// associated router if any
private VirtualRouter router = null;
public VirtualPort() {
snetInfo = new HashMap<Uuid, SubnetInfo>();
+ serviceBindingStatus = Boolean.FALSE;
}
public Uuid getIntfUUID() {
return ipv6AddrList;
}
+ public List<Ipv6Address> getIpv6AddressesWithoutLLA() {
+ List<Ipv6Address> ipv6AddrList = new ArrayList<>();
+ for (SubnetInfo subnetInfo : snetInfo.values()) {
+ if (subnetInfo.getIpAddr().getIpv6Address() instanceof Ipv6Address) {
+ ipv6AddrList.add(subnetInfo.getIpAddr().getIpv6Address());
+ }
+ }
+ return ipv6AddrList;
+ }
+
public String getMacAddress() {
return macAddress;
}
return ofPort;
}
+ public void setServiceBindingStatus(Boolean status) {
+ this.serviceBindingStatus = status;
+ }
+
+ public Boolean getServiceBindingStatus() {
+ return serviceBindingStatus;
+ }
+
public void removeSelf() {
if (routerIntfFlag == true) {
if (router != null) {
+ ofPort + " routerFlag=" + routerIntfFlag + " dpId=" + dpId + "]";
}
+ public void setPeriodicTimer() {
+ periodicTimer = new Ipv6PeriodicTimer(intfUUID);
+ }
+
+ public Ipv6PeriodicTimer getPeriodicTimer() {
+ return periodicTimer;
+ }
+
+ public void setPeriodicTimeout(Timeout timeout) {
+ periodicTimeout = timeout;
+ }
+
+ public void resetPeriodicTimeout() {
+ periodicTimeout = null;
+ }
+
+ public Timeout getPeriodicTimeout() {
+ return periodicTimeout;
+ }
+
private class SubnetInfo {
private Uuid subnetID;
private IpAddress ipAddr;