package org.batfish.datamodel;
import java.util.HashMap;
import java.util.Map;
import org.batfish.common.BatfishException;
public enum NamedPort {
AFS(1483),
AOL(5190),
BFD_CONTROL(3784),
BFD_ECHO(3785),
BGP(179),
BIFFudp_OR_EXECtcp(512),
BOOTPC(68),
BOOTPS_OR_DHCP(67),
CHARGEN(19),
CITRIX_ICA(1494),
CMDtcp_OR_SYSLOGudp(514),
CTIQBE(2748),
CVSPSERVER(2401),
DAYTIME(13),
DISCARD(9),
DNSIX(195),
DOMAIN(53),
ECHO(7),
EKLOGIN(2105),
EKSHELL(2106),
FINGER(79),
FTP(21),
FTP_DATA(20),
GOPHER(70),
H323(1720),
HOSTNAME(101),
HTTP(80),
HTTPS(443),
IDENT(113),
IMAP(143),
IRC(194),
ISAKMP(500),
KERBEROS(750),
KERBEROS_SEC(88),
KLOGIN(543),
KPASSWD(761),
KRB_PROP(754),
KRBUPDATE(760),
KSHELL(544),
LDAP(389),
LDAPS(636),
LDP(646),
LOGINtcp_OR_WHOudp(513),
LOTUSNOTES(1352),
LPD(515),
MICROSOFT_DS(445),
/**
* not authoritative
*/
MLAG(6784),
MOBILE_IP_AGENT(434),
MOBILE_IP_MN(435),
MSDP(639),
MSRPC(135),
NAMESERVER(42),
NETBIOS_DGM(138),
NETBIOS_NS(137),
NETBIOS_SSN(139),
NETCONF_SSH(830),
NFSD(2049),
NNTP(119),
NON500_ISAKMP(4500),
NTALK(518),
NTP(123),
PCANYWHERE_DATA(5631),
PCANYWHERE_STATUS(5632),
PIM_AUTO_RP(496),
POP2(109),
POP3(110),
PPTP(1723),
R2CP(28762),
RADIUS_ACCT_CISCO(1646),
RADIUS_ACCT_JUNIPER(1813),
RADIUS_CISCO(1645),
RADIUS_JUNIPER(1812),
REVERSE_SSH(2901),
REVERSE_TELNET(2900),
RIP(520),
RKINIT(2108),
SAP(9875),
SECUREID_UDP(5510),
SIP_5060(5060),
SIP_5061(5061),
SMTP(25),
SNMP(161),
SNMPTRAP(162),
SNPP(444),
SOCKS(1080),
SQLNET(1521),
SSH(22),
SUNRPC(111),
TACACS(49),
TACACS_DS(65),
TALK(517),
TELNET(23),
TFTP(69),
TIME(37),
TIMED(525),
TRACEROUTE(33434),
UUCP(540),
WHOIS(43),
XDMCP(177),
XNM_CLEAR_TEXT(3221),
XNM_SSL(3220);
private static final Map<Integer, NamedPort> NUMBER_TO_PORT_MAP = buildNumberToPortMap();
private static Map<Integer, NamedPort> buildNumberToPortMap() {
Map<Integer, NamedPort> map = new HashMap<>();
for (NamedPort protocol : values()) {
map.put(protocol._number, protocol);
}
return map;
}
public static NamedPort fromNumber(int number) {
NamedPort ret = NUMBER_TO_PORT_MAP.get(number);
if (ret == null) {
throw new BatfishException(
"missing enumeration for protocol number: " + number);
}
return ret;
}
public static String nameFromNumber(int i) {
NamedPort namedPort = NUMBER_TO_PORT_MAP.get(i);
if (namedPort == null) {
return Integer.toString(i);
}
else {
return namedPort.name() + "(" + i + ")";
}
}
private int _number;
private NamedPort(int number) {
_number = number;
}
public int number() {
return _number;
}
}