File: test_fdb.py

package info (click to toggle)
pyroute2 0.8.1-4
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,704 kB
  • sloc: python: 50,245; makefile: 280; javascript: 183; ansic: 81; sh: 44; awk: 17
file content (60 lines) | stat: -rw-r--r-- 2,046 bytes parent folder | download | duplicates (3)
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
from pr2test.marks import require_root

pytestmark = [require_root()]


def test_fdb_vxlan(context):
    ipaddr = context.new_ipaddr
    host_if = context.new_ifname
    vxlan_if = context.new_ifname

    context.ndb.interfaces.create(ifname=host_if, kind='dummy').commit()
    host_idx = context.ndb.interfaces[host_if]['index']
    (
        context.ndb.interfaces.create(
            ifname=vxlan_if, kind='vxlan', vxlan_link=host_idx, vxlan_id=500
        ).commit()
    )
    vxlan_idx = context.ndb.interfaces[vxlan_if]['index']

    # create FDB record
    l2 = '00:11:22:33:44:55'
    (
        context.ipr.fdb(
            'add', lladdr=l2, ifindex=vxlan_idx, vni=600, port=5678, dst=ipaddr
        )
    )
    # dump
    r = tuple(context.ipr.fdb('dump', ifindex=vxlan_idx, lladdr=l2))
    assert len(r) == 1
    assert r[0]['ifindex'] == vxlan_idx
    assert r[0].get_attr('NDA_LLADDR') == l2
    assert r[0].get_attr('NDA_DST') == ipaddr
    assert r[0].get_attr('NDA_PORT') == 5678
    assert r[0].get_attr('NDA_VNI') == 600


def test_fdb_bridge_simple(context):
    ifname = context.new_ifname
    (
        context.ndb.interfaces.create(
            ifname=ifname, kind='bridge', state='up'
        ).commit()
    )
    idx = context.ndb.interfaces[ifname]['index']
    # create FDB record
    l2 = '00:11:22:33:44:55'
    context.ipr.fdb('add', lladdr=l2, ifindex=idx)
    # dump FDB
    r = tuple(context.ipr.fdb('dump', ifindex=idx, lladdr=l2))
    # one vlan == 1, one w/o vlan
    assert len(r) == 2
    assert len(list(filter(lambda x: x['ifindex'] == idx, r))) == 2
    assert len(list(filter(lambda x: x.get_attr('NDA_VLAN'), r))) == 1
    assert len(list(filter(lambda x: x.get_attr('NDA_MASTER') == idx, r))) == 2
    assert len(list(filter(lambda x: x.get_attr('NDA_LLADDR') == l2, r))) == 2
    r = tuple(context.ipr.fdb('dump', ifindex=idx, lladdr=l2, vlan=1))
    assert len(r) == 1
    assert r[0].get_attr('NDA_VLAN') == 1
    assert r[0].get_attr('NDA_MASTER') == idx
    assert r[0].get_attr('NDA_LLADDR') == l2