Add implementation for flat L3 overlay
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / lisp / LispState.java
1 /*
2  * Copyright (c) 2017 Cisco Systems. All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp;
10
11 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.lisp.rev170315.dp.subtable.grouping.local.mappings.local.mapping.Eid;
13
14 import java.util.HashMap;
15 import java.util.HashSet;
16 import java.util.Map;
17 import java.util.Set;
18
19 /**
20  * Created by Shakib Ahmed on 3/29/17.
21  */
22 public class LispState {
23     private String hostName;
24     private boolean lispEnabled;
25     private HashMap<String, String> locIntfToLocSetNameMapping;
26     private Set<IpAddress> mapServerIpAddressSet;
27     private Set<IpAddress> mapResolverIpAddressSet;
28     private Set<Long> vniSet;
29     private boolean mapRegisteredEnabled;
30     private HashMap<Eid, String> eidToMappingIdMapper;
31     private int interfaceCount;
32
33     public LispState(String hostName) {
34         this.hostName = hostName;
35         lispEnabled = false;
36         locIntfToLocSetNameMapping = new HashMap<>();
37         mapServerIpAddressSet = new HashSet<>();
38         mapResolverIpAddressSet = new HashSet<>();
39         mapRegisteredEnabled = false;
40         vniSet = new HashSet<>();
41         eidToMappingIdMapper = new HashMap<>();
42         interfaceCount = 1;
43     }
44
45     public String getHostName() {
46         return hostName;
47     }
48
49     public boolean isLispEnabled() {
50         return lispEnabled;
51     }
52
53     public void setLispEnabled(boolean lispEnabled) {
54         this.lispEnabled = lispEnabled;
55     }
56
57     public String getLocIntfToLocSetNameMapping(String locatorIntf) {
58         return locIntfToLocSetNameMapping.get(locatorIntf);
59     }
60
61     public void setLocIntfToLocSetNameMapping(String locIntfName, String locSetName) {
62         locIntfToLocSetNameMapping.put(locIntfName, locSetName);
63     }
64
65     public Set<Map.Entry<String, String>> getLocatorSetEntry() {
66         return locIntfToLocSetNameMapping.entrySet();
67     }
68
69     public int getLocatorCount() {
70         return locIntfToLocSetNameMapping.size();
71     }
72
73     public boolean mapServerSetContains(IpAddress ip) {
74         return mapServerIpAddressSet.contains(ip);
75     }
76
77     public void addInMapServerSet(IpAddress ip) {
78         mapServerIpAddressSet.add(ip);
79     }
80
81     public boolean mapResolverSetContains(IpAddress ip) {
82         return mapResolverIpAddressSet.contains(ip);
83     }
84
85     public void addInMapResolverSet(IpAddress ip) {
86         mapResolverIpAddressSet.add(ip);
87     }
88
89     public boolean vniSetContains(long vni) {
90         return vniSet.contains(vni);
91     }
92
93     public void addInVniSet(long vni) {
94         vniSet.add(vni);
95     }
96
97     public boolean isMapRegisteredEnabled() {
98         return mapRegisteredEnabled;
99     }
100
101     public void setMapRegisteredEnabled(boolean mapRegisteredEnabled) {
102         this.mapRegisteredEnabled = mapRegisteredEnabled;
103     }
104
105     public boolean eidSetContains(Eid eid) {
106         return eidToMappingIdMapper.containsKey(eid);
107     }
108
109     public void addInEidSet(Eid eid, String mappingId) {
110         interfaceCount++;
111         eidToMappingIdMapper.put(eid, mappingId);
112     }
113
114     public int eidCount() {
115         return eidToMappingIdMapper.size();
116     }
117
118     public void deleteEid(Eid eid) {
119         eidToMappingIdMapper.remove(eid);
120     }
121
122     public String getEidMapping(Eid eid) {
123         return eidToMappingIdMapper.get(eid);
124     }
125
126     public int getInterfaceId() {
127         return interfaceCount;
128     }
129 }