package org.batfish.representation.juniper;
import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
import org.batfish.datamodel.Ip;
import org.batfish.datamodel.SnmpServer;
public class RoutingInstance implements Serializable {
private static final double DEFAULT_OSPF_REFERENCE_BANDWIDTH = 1E9;
private static final String MASTER_INTERFACE_NAME = "MASTER_INTERFACE";
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer _as;
private String _domainName;
private String _forwardingTableExportPolicy;
private int _forwardingTableExportPolicyLine;
private final Interface _globalMasterInterface;
private String _hostname;
private final Map<String, Interface> _interfaces;
private Map<Ip, IpBgpGroup> _ipBgpGroups;
private final IsisSettings _isisSettings;
private BgpGroup _masterBgpGroup;
private String _name;
private Map<String, NamedBgpGroup> _namedBgpGroups;
private final Map<String, NodeDevice> _nodeDevices;
private Map<Ip, OspfArea> _ospfAreas;
private Map<String, Integer> _ospfExportPolicies;
private double _ospfReferenceBandwidth;
private final Map<String, RoutingInformationBase> _ribs;
private Ip _routerId;
private SnmpServer _snmpServer;
private final JuniperSystem _system;
public RoutingInstance(String name) {
_isisSettings = new IsisSettings();
_interfaces = new TreeMap<>();
_ipBgpGroups = new TreeMap<>();
_masterBgpGroup = new BgpGroup();
_globalMasterInterface = new Interface(MASTER_INTERFACE_NAME, -1);
_globalMasterInterface.setRoutingInstance(name);
_name = name;
_namedBgpGroups = new TreeMap<>();
_nodeDevices = new TreeMap<>();
_ospfAreas = new TreeMap<>();
_ospfExportPolicies = new LinkedHashMap<>();
_ospfReferenceBandwidth = DEFAULT_OSPF_REFERENCE_BANDWIDTH;
_ribs = new TreeMap<>();
_ribs.put(RoutingInformationBase.RIB_IPV4_UNICAST,
new RoutingInformationBase(
RoutingInformationBase.RIB_IPV4_UNICAST));
_ribs.put(RoutingInformationBase.RIB_IPV4_MULTICAST,
new RoutingInformationBase(
RoutingInformationBase.RIB_IPV4_MULTICAST));
_ribs.put(RoutingInformationBase.RIB_IPV4_MPLS,
new RoutingInformationBase(RoutingInformationBase.RIB_IPV4_MPLS));
_ribs.put(RoutingInformationBase.RIB_IPV6_UNICAST,
new RoutingInformationBase(
RoutingInformationBase.RIB_IPV6_UNICAST));
_ribs.put(RoutingInformationBase.RIB_MPLS,
new RoutingInformationBase(RoutingInformationBase.RIB_MPLS));
_ribs.put(RoutingInformationBase.RIB_ISIS,
new RoutingInformationBase(RoutingInformationBase.RIB_ISIS));
_system = new JuniperSystem();
}
public Integer getAs() {
return _as;
}
public String getDomainName() {
return _domainName;
}
public String getForwardingTableExportPolicy() {
return _forwardingTableExportPolicy;
}
public int getForwardingTableExportPolicyLine() {
return _forwardingTableExportPolicyLine;
}
public Interface getGlobalMasterInterface() {
return _globalMasterInterface;
}
public String getHostname() {
return _hostname;
}
public Map<String, Interface> getInterfaces() {
return _interfaces;
}
public Map<Ip, IpBgpGroup> getIpBgpGroups() {
return _ipBgpGroups;
}
public IsisSettings getIsisSettings() {
return _isisSettings;
}
public BgpGroup getMasterBgpGroup() {
return _masterBgpGroup;
}
public String getName() {
return _name;
}
public Map<String, NamedBgpGroup> getNamedBgpGroups() {
return _namedBgpGroups;
}
public Map<String, NodeDevice> getNodeDevices() {
return _nodeDevices;
}
public Map<Ip, OspfArea> getOspfAreas() {
return _ospfAreas;
}
public Map<String, Integer> getOspfExportPolicies() {
return _ospfExportPolicies;
}
public double getOspfReferenceBandwidth() {
return _ospfReferenceBandwidth;
}
public Map<String, RoutingInformationBase> getRibs() {
return _ribs;
}
public Ip getRouterId() {
return _routerId;
}
public SnmpServer getSnmpServer() {
return _snmpServer;
}
public JuniperSystem getSystem() {
return _system;
}
public void setAs(int as) {
_as = as;
}
public void setDomainName(String domainName) {
_domainName = domainName;
}
public void setForwardingTableExportPolicy(
String forwardingTableExportPolicy) {
_forwardingTableExportPolicy = forwardingTableExportPolicy;
}
public void setForwardingTableExportPolicyLine(
int forwardingTableExportPolicyLine) {
_forwardingTableExportPolicyLine = forwardingTableExportPolicyLine;
}
public void setHostname(String hostname) {
_hostname = hostname;
}
public void setOspfReferenceBandwidth(double ospfReferenceBandwidth) {
_ospfReferenceBandwidth = ospfReferenceBandwidth;
}
public void setRouterId(Ip routerId) {
_routerId = routerId;
}
public void setSnmpServer(SnmpServer snmpServer) {
_snmpServer = snmpServer;
}
}