-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathvxlan.dizz
104 lines (94 loc) · 5.43 KB
/
vxlan.dizz
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# VXLAN
# from http://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02#page-9
#~ 0 1 2 3
#~ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
#~
#~ Outer Ethernet Header: |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Outer Destination MAC Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Outer Destination MAC Address | Outer Source MAC Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Outer Source MAC Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ Optional Ethertype = C-Tag 802.1Q | Outer.VLAN Tag Information |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Ethertype 0x0800 |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ Outer IP Header:
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ |Version| IHL |Type of Service| Total Length |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Identification |Flags| Fragment Offset |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Time to Live | Protocol | Header Checksum |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Outer Source Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Outer Destination Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ Outer UDP Header:
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Source Port = xxxx | Dest Port = VXLAN Port |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | UDP Length | UDP Checksum |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~
# Send to udp target.
# UDP csum may be zero
# DST port 8472 (cisco nexus)
# high range source port
#~ O Outer UDP Header: This is the outer UDP header with a source
#~ port provided by the VTEP and the destination port being a well-
#~ known UDP port to be obtained by IANA assignment. It is recommended
#~ that the source port be a hash of the inner Ethernet frame's
#~ headers. This is to enable a level of entropy for ECMP/load
#~ balancing of the VM to VM traffic across the VXLAN overlay.
name = "VXLAN"
objects = [
#~ 0 1 2 3
#~ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
#~
#~ VXLAN Header:
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ |R|R|R|R|I|R|R|R| Reserved |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | VXLAN Network Identifier (VNI) | Reserved |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
field("flags", 8, b"\x08", std),
field("reserved", 24, b"\x00\x00\x00", std),
field("VNI", 24, b"\x12\x34\x56", std),
field("reserved2", 8, b"\x00", std),
#Data is arp request
#~ Inner Ethernet Header:
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Inner Destination MAC Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Inner Destination MAC Address | Inner Source MAC Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Inner Source MAC Address |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
field("eth_dst", 48, b"\xff\xff\xff\xff\xff\xff", none),
field("eth_src", 48, b"\x01\x02\x03\x04\x05\x06", none),
field("eth_type", 16, b"\x08\x06", none),
#~ Payload:
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
#~ | Ethertype of Original Payload | |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
#~ | Original Ethernet Payload |
#~ | |
#~ | (Note that the original Ethernet Frame's FCS is not included) |
#~ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
field("hw_type", 16, b"\x00\x01", none), #/* Hardware Type -> here Ethernet (1)*/
field("proto_type", 16, b"\x08\x00", none), #/* Protocol Type -> here IP (8) */
field("hw_size", 8, b"\x06", none), #/* Hardware size -> here MAC (48Bit /6Byte) */
field("proto_size", 8, b"\x04", none), #/* Protocol Size -> here IP (32Bit /4Byte) */
field("opcode", 16, b"\x00\x01", none), #/* Opcode (1->request, 2->reply) */
field("mac_src", 48, b"\x01\x02\x03\x04\x05\x06", none), #/* MAC-Src */
field("ip_src", 32, b"\xc0\xa8\x5f\xb5", none), #/* IP-Src */
field("mac_dst", 48, b"\x00\x00\x00\x00\x00\x00", none), #/* MAC-Dst */
field("ip_dst", 32, b"\xc0\xa8\x5f\xb6", none), #/* IP-Dst */
field("payload", None, b"\x00\x00", none),
]
functions = [
]