Maciek,
No.
There is a breakage with VXLAN. Here is the analysis from Neale:
======================================================================
ERROR: Encapsulation test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/vpp/test/template_bd.py", line 91, in test_encap
self.check_encapsulation(pkt)
File "/vpp/test/test_vxlan.py", line 53, in check_encapsulation
self.assertEqual(pkt[VXLAN].vni, type(self).vni)
File
"/vpp/build-root/python/virtualenv/local/lib/python2.7/site-packages/scapy/packet.py",
line 817, in __getitem__
raise IndexError("Layer [%s] not found" % lname)
IndexError: Layer [VXLAN] not found
Is more subtle.
The VxLAN encap test passes every time when just the VxLAN suite is run.
Here is the VPP trace with the VxLAN encapped packet:
00:00:02:549965: pg0-tx
192 bytes
current data -50, length 192, free-list 6, trace 0x0
00000000: 0000000000000000000000000000000000000000000000000000000000000000
00000020: 0000000000000000000000000000000000000000000000000000000000000000
00000040: 000000000000000000000000000002010000ff0202fe9a2f300a0800450000b2
00000060: 00000000fd116317ac100101ac100102dc4012b5009e0000 <<0800000
000000100>>
00000080: 0000000000010000000000020800450000800001000040117063040302010102
000000a0: 03044e202710006c2582a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5
000000c0: a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5
000000e0: a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5
00000100: a5a5a5a5a5a5a5a5a5a5a5a5a5a5
Scapy interprets this as:
###[ Ethernet ]###
dst = 02:01:00:00:ff:02
src = 02:fe:9a:2f:30:0a
type = 0x800
###[ IP ]###
…
###[ UDP ]###
sport = 56384
dport = 4789
len = 158
chksum = 0x0
###[ VXLAN ]###
flags = 134217728L
vni = 0x1
reserved = 0x0
###[ Ethernet ]###
….
Note the flags field is a 4 byte integer with value 0x08000000. As was in the
header.
When the VxLAN test runs along with all the other tests we get the same packet
in the VPP trace.
00:00:02:726784: pg0-tx
192 bytes
current data -50, length 192, free-list 6, trace 0x0
00000000: 0000000000000000000000000000000000000000000000000000000000000000
00000020: 0000000000000000000000000000000000000000000000000000000000000000
00000040: 000000000000000000000000000002010000ff0202fe994605ca0800450000b2
00000060: 00000000fd116317ac100101ac100102dc4012b5009e0000 <<08000000
00000100>>
00000080: 0000000000010000000000020800450000800001000040117063040302010102
000000a0: 03044e202710006c2582a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5
000000c0: a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5
000000e0: a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5
00000100: a5a5a5a5a5a5a5a5a5a5a5a5a5a5
But this time Scapy interprets this as:
###[ Ethernet ]###
…
###[ IP ]###
…
###[ UDP ]###
...
###[ VXLAN ]###
flags = Instance
reserved1 = 0
vni = 0x1
reserved2 = 0x0
Where according to the .py definition of a VxLAN header:
class VXLAN(Packet):
name = "VXLAN"
fields_desc = [
FlagsField("flags", 0x8, 8,
['OAM', 'R', 'NextProtocol', 'Instance',
'V1', 'V2', 'R', 'G']),
The flag ‘Instance’ refers to 0x10 not 0x08. Bit shift left one.
And then, according to the error, it cannot find the VxLAN header.
FIIK what that’s about.
Neale
> On 12 Dec 2016, at 17:19, Maciek Konstantynowicz (mkonstan)
> <[email protected]> wrote:
>
> Hello, Does anyone know if vpp make test is back on track to be ready to be
> used for vpp make verify jobs on a per patch basis?
>
> Being lazy I know - cause I could run it myself :)
>
> -Maciek
>
> _______________________________________________
> vpp-dev mailing list
> [email protected]
> https://lists.fd.io/mailman/listinfo/vpp-dev
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev