-
-
Notifications
You must be signed in to change notification settings - Fork 309
/
LinuxSllPacketType.java
88 lines (73 loc) · 2.84 KB
/
LinuxSllPacketType.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*_##########################################################################
_##
_## Copyright (C) 2014-2015 Pcap4J.org
_##
_##########################################################################
*/
package org.pcap4j.packet.namednumber;
import java.util.HashMap;
import java.util.Map;
/**
* Linux SLL Packet Type
*
* @see <a href="https://github.com/the-tcpdump-group/libpcap/blob/master/pcap/sll.h">pcap/sll.h</a>
* @author Kaito Yamada
* @since pcap4j 1.4.0
*/
public final class LinuxSllPacketType extends NamedNumber<Short, LinuxSllPacketType> {
/** */
private static final long serialVersionUID = 8331027096398154722L;
/** A packet addressed to the local host: 0 */
public static final LinuxSllPacketType LINUX_SLL_HOST =
new LinuxSllPacketType((short) 0, "A packet addressed to the local host");
/** A physical layer broadcast packet: 1 */
public static final LinuxSllPacketType LINUX_SLL_BROADCAST =
new LinuxSllPacketType((short) 1, "A physical layer broadcast packet");
/** A packet sent to a physical layer multicast address: 2 */
public static final LinuxSllPacketType LINUX_SLL_MULTICAST =
new LinuxSllPacketType((short) 2, "A packet sent to a physical layer multicast address");
/** A packet to some other host that has been caught by a device driver in promiscuous mode: 3 */
public static final LinuxSllPacketType LINUX_SLL_OTHERHOST =
new LinuxSllPacketType((short) 3, "A packet to some other host");
/** A packet originated from the local host that is looped back to a packet socket: 4 */
public static final LinuxSllPacketType LINUX_SLL_OUTGOING =
new LinuxSllPacketType((short) 4, "A packet originated from the local host");
private static final Map<Short, LinuxSllPacketType> registry =
new HashMap<Short, LinuxSllPacketType>();
static {
registry.put(LINUX_SLL_HOST.value(), LINUX_SLL_HOST);
registry.put(LINUX_SLL_BROADCAST.value(), LINUX_SLL_BROADCAST);
registry.put(LINUX_SLL_MULTICAST.value(), LINUX_SLL_MULTICAST);
registry.put(LINUX_SLL_OTHERHOST.value(), LINUX_SLL_OTHERHOST);
registry.put(LINUX_SLL_OUTGOING.value(), LINUX_SLL_OUTGOING);
}
/**
* @param value value
* @param name name
*/
public LinuxSllPacketType(Short value, String name) {
super(value, name);
}
/**
* @param value value
* @return a EtherType object.
*/
public static LinuxSllPacketType getInstance(Short value) {
if (registry.containsKey(value)) {
return registry.get(value);
} else {
return new LinuxSllPacketType(value, "unknown");
}
}
/**
* @param type type
* @return a EtherType object.
*/
public static LinuxSllPacketType register(LinuxSllPacketType type) {
return registry.put(type.value(), type);
}
@Override
public int compareTo(LinuxSllPacketType o) {
return value().compareTo(o.value());
}
}