d78f8e5794925ca2b7971f6bc72c8f4698642943
[groupbasedpolicy.git] / renderers / vpp / src / main / java / org / opendaylight / groupbasedpolicy / renderer / vpp / lisp / info / container / states / PortInterfaces.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 package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states;
9
10 import java.util.HashMap;
11 import java.util.HashSet;
12 import java.util.Set;
13
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17
18 public class PortInterfaces {
19     private HashMap<String, PortRouteState> interfaceNameToPortRouteStateMapper;
20     private Set<String> metadataInterfaceSet;
21     private static final Logger LOG = LoggerFactory.getLogger(PortInterfaces.class);
22
23
24     public PortInterfaces() {
25         interfaceNameToPortRouteStateMapper = new HashMap<>();
26         metadataInterfaceSet = new HashSet<>();
27     }
28
29     public void initializeRoutingContextForInterface(String interfaceName, Long vrfId) {
30         interfaceNameToPortRouteStateMapper.put(interfaceName, new PortRouteState(vrfId));
31     }
32
33     public boolean isVrfConfiguredForInterface(String interfaceName) {
34         return interfaceNameToPortRouteStateMapper.containsKey(interfaceName);
35     }
36
37     public PortRouteState getPortRouteState(String interfaceName) {
38         return interfaceNameToPortRouteStateMapper.get(interfaceName);
39     }
40
41     public void addRouteToPortInterface(String interfaceName, String ipSubnetUuid, Ipv4Address ip, long routeId) {
42         interfaceNameToPortRouteStateMapper.get(interfaceName).addRouteInfo(ip, routeId, ipSubnetUuid);
43     }
44
45     public boolean isInterfaceConfiguredForMetadata(String interfaceName) {
46         return metadataInterfaceSet.contains(interfaceName);
47     }
48
49     public void addInterfaceInMetadataInterfaceSet(String interfaceName) {
50         metadataInterfaceSet.add(interfaceName);
51     }
52
53     public Long getInterfaceVrfId(String interfaceName) {
54         PortRouteState portRouteState = interfaceNameToPortRouteStateMapper.get(interfaceName);
55         if (portRouteState != null) {
56             return portRouteState.getVrfId();
57         }
58         return null;
59     }
60
61     public void removePortInterface(String interfaceName) {
62         metadataInterfaceSet.remove(interfaceName);
63         interfaceNameToPortRouteStateMapper.remove(interfaceName);
64     }
65
66     public boolean isRoutingContextForInterfaceInitialized(String interfaceName) {
67         return interfaceNameToPortRouteStateMapper.get(interfaceName) != null;
68     }
69
70     @Override public String toString() {
71         return "PortInterfaces{" + "interfaceNameToPortRouteStateMapper=" + interfaceNameToPortRouteStateMapper
72             + ", metadataInterfaceSet=" + metadataInterfaceSet + '}';
73     }
74 }