2 * Copyright (c) 2015 Dell Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netvirt.ipv6service;
11 import java.util.Collection;
12 import java.util.HashMap;
13 import java.util.Iterator;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix;
16 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
20 public class VirtualSubnet {
22 private Uuid subnetUUID;
23 private Uuid tenantID;
25 private IpAddress gatewayIp;
26 private IpPrefix subnetCidr;
27 private String ipVersion;
28 private String ipv6AddressMode;
29 private String ipv6RAMode;
32 private VirtualRouter router;
34 private HashMap<Uuid, VirtualPort> interfaces;
40 static final Logger LOG = LoggerFactory.getLogger(VirtualSubnet.class);
43 this.interfaces = new HashMap<>();
47 public VirtualSubnet() {
51 public VirtualSubnet setSubnetUUID(Uuid subnetUUID) {
52 this.subnetUUID = subnetUUID;
56 public Uuid getSubnetUUID() {
60 public String getName() {
64 public VirtualSubnet setName(String name) {
69 public Uuid getTenantID() {
73 public VirtualSubnet setTenantID(Uuid tenantID) {
74 this.tenantID = tenantID;
78 public VirtualSubnet setGatewayIp(IpAddress gwIp) {
79 this.gatewayIp = gwIp;
83 public IpAddress getGatewayIp() {
87 public VirtualSubnet setIPVersion(String ipVersion) {
88 this.ipVersion = ipVersion;
92 public String getIpVersion() {
96 public VirtualSubnet setSubnetCidr(IpPrefix subnetCidr) {
97 this.subnetCidr = subnetCidr;
101 public IpPrefix getSubnetCidr() {
105 public VirtualSubnet setIpv6AddressMode(String ipv6AddressMode) {
106 this.ipv6AddressMode = ipv6AddressMode;
110 public String getIpv6AddressMode() {
111 return ipv6AddressMode;
114 public VirtualSubnet setIpv6RAMode(String ipv6RAMode) {
115 this.ipv6RAMode = ipv6RAMode;
119 public String getIpv6RAMode() {
123 public void setRouter(VirtualRouter rtr) {
127 public VirtualRouter getRouter() {
131 public void addInterface(VirtualPort intf) {
132 interfaces.put(intf.getIntfUUID(), intf);
135 public void removeInterface(VirtualPort intf) {
136 interfaces.remove(intf.getIntfUUID());
139 public void removeSelf() {
140 Collection<VirtualPort> intfs = interfaces.values();
142 Iterator itr = intfs.iterator();
143 while (itr.hasNext()) {
144 VirtualPort intf = (VirtualPort) itr.next();
146 intf.removeSubnetInfo(subnetUUID);
150 if (router != null) {
151 router.removeSubnet(this);