2 * Copyright (c) 2017 Cisco Systems. 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
8 package org.opendaylight.groupbasedpolicy.renderer.vpp.lisp.info.container.states;
10 import java.util.HashMap;
11 import java.util.HashSet;
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;
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);
24 public PortInterfaces() {
25 interfaceNameToPortRouteStateMapper = new HashMap<>();
26 metadataInterfaceSet = new HashSet<>();
29 public void initializeRoutingContextForInterface(String interfaceName, Long vrfId) {
30 interfaceNameToPortRouteStateMapper.put(interfaceName, new PortRouteState(vrfId));
33 public boolean isVrfConfiguredForInterface(String interfaceName) {
34 return interfaceNameToPortRouteStateMapper.containsKey(interfaceName);
37 public PortRouteState getPortRouteState(String interfaceName) {
38 return interfaceNameToPortRouteStateMapper.get(interfaceName);
41 public void addRouteToPortInterface(String interfaceName, String ipSubnetUuid, Ipv4Address ip, long routeId) {
42 interfaceNameToPortRouteStateMapper.get(interfaceName).addRouteInfo(ip, routeId, ipSubnetUuid);
45 public boolean isInterfaceConfiguredForMetadata(String interfaceName) {
46 return metadataInterfaceSet.contains(interfaceName);
49 public void addInterfaceInMetadataInterfaceSet(String interfaceName) {
50 metadataInterfaceSet.add(interfaceName);
53 public Long getInterfaceVrfId(String interfaceName) {
54 PortRouteState portRouteState = interfaceNameToPortRouteStateMapper.get(interfaceName);
55 if (portRouteState != null) {
56 return portRouteState.getVrfId();
61 public void removePortInterface(String interfaceName) {
62 metadataInterfaceSet.remove(interfaceName);
63 interfaceNameToPortRouteStateMapper.remove(interfaceName);
66 public boolean isRoutingContextForInterfaceInitialized(String interfaceName) {
67 return interfaceNameToPortRouteStateMapper.get(interfaceName) != null;
70 @Override public String toString() {
71 return "PortInterfaces{" + "interfaceNameToPortRouteStateMapper=" + interfaceNameToPortRouteStateMapper
72 + ", metadataInterfaceSet=" + metadataInterfaceSet + '}';