public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
blob 24bbdc27fa8bb184b827144f67fb43e3dac05985 1549 bytes (raw)

 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
 
#! /usr/bin/env python3

# SPDX-License-Identifier: GPL-2.0-or-later
#
# Copyright Red Hat
# Author: David Gibson <david@gibson.dropbear.id.au>

"""
Test A Simple Socket Transport

selftest/veth.py - Test various veth configurations
"""

import contextlib
import ipaddress

import exeter

from tasst import nstool


@contextlib.contextmanager
def unconfigured_veth():
    with nstool.unshare_snh('ns1', '-Un') as ns1:
        with nstool.unshare_snh('ns2', '-n', parent=ns1, capable=True) as ns2:
            ns1.veth('veth1', 'veth2', ns2)
            yield (ns1, ns2)


@exeter.test
def test_ifs():
    with unconfigured_veth() as (ns1, ns2):
        exeter.assert_eq(set(ns1.ifs()), set(['lo', 'veth1']))
        exeter.assert_eq(set(ns2.ifs()), set(['lo', 'veth2']))


@exeter.test
def test_mtu():
    with unconfigured_veth() as (ns1, ns2):
        exeter.assert_eq(ns1.mtu('veth1'), 1500)
        exeter.assert_eq(ns2.mtu('veth2'), 1500)


@exeter.test
def test_slaac(dad=None):
    TESTMAC = '02:aa:bb:cc:dd:ee'
    TESTIP = ipaddress.ip_interface('fe80::aa:bbff:fecc:ddee/64')

    with unconfigured_veth() as (ns1, ns2):
        ns1.fg('ip', 'link', 'set', 'dev', 'veth1', 'address', f'{TESTMAC}',
               capable=True)

        ns1.ifup('veth1', dad=dad)
        ns2.ifup('veth2')

        addrs = ns1.addr_wait('veth1', family='inet6', scope='link')
        exeter.assert_eq(addrs, [TESTIP])


@exeter.test
def test_optimistic_dad():
    test_slaac(dad='optimistic')


@exeter.test
def test_no_dad():
    test_slaac(dad='disable')

debug log:

solving 24bbdc27 ...
found 24bbdc27 in https://archives.passt.top/passt-dev/20240805123701.1720730-16-david@gibson.dropbear.id.au/
found 5c8f0c0b in https://archives.passt.top/passt-dev/20240805123701.1720730-15-david@gibson.dropbear.id.au/
found 3c0b3f5b in https://archives.passt.top/passt-dev/20240805123701.1720730-14-david@gibson.dropbear.id.au/

applying [1/3] https://archives.passt.top/passt-dev/20240805123701.1720730-14-david@gibson.dropbear.id.au/
diff --git a/test/tasst/selftest/veth.py b/test/tasst/selftest/veth.py
new file mode 100644
index 00000000..3c0b3f5b


applying [2/3] https://archives.passt.top/passt-dev/20240805123701.1720730-15-david@gibson.dropbear.id.au/
diff --git a/test/tasst/selftest/veth.py b/test/tasst/selftest/veth.py
index 3c0b3f5b..5c8f0c0b 100644


applying [3/3] https://archives.passt.top/passt-dev/20240805123701.1720730-16-david@gibson.dropbear.id.au/
diff --git a/test/tasst/selftest/veth.py b/test/tasst/selftest/veth.py
index 5c8f0c0b..24bbdc27 100644

Checking patch test/tasst/selftest/veth.py...
Applied patch test/tasst/selftest/veth.py cleanly.
Checking patch test/tasst/selftest/veth.py...
Applied patch test/tasst/selftest/veth.py cleanly.
Checking patch test/tasst/selftest/veth.py...
Applied patch test/tasst/selftest/veth.py cleanly.

index at:
100644 24bbdc27fa8bb184b827144f67fb43e3dac05985	test/tasst/selftest/veth.py

Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).