Changeset View
Changeset View
Standalone View
Standalone View
tests/sys/netlink/test_rtnl_iface.py
Show All 13 Lines | |||||
from atf_python.sys.netlink.attrs import NlAttrU32 | from atf_python.sys.netlink.attrs import NlAttrU32 | ||||
from atf_python.sys.netlink.utils import NlConst | from atf_python.sys.netlink.utils import NlConst | ||||
from atf_python.sys.netlink.base_headers import NlmBaseFlags | from atf_python.sys.netlink.base_headers import NlmBaseFlags | ||||
from atf_python.sys.netlink.base_headers import NlmNewFlags | from atf_python.sys.netlink.base_headers import NlmNewFlags | ||||
from atf_python.sys.netlink.base_headers import NlMsgType | from atf_python.sys.netlink.base_headers import NlMsgType | ||||
from atf_python.sys.netlink.netlink_route import NlRtMsgType | from atf_python.sys.netlink.netlink_route import NlRtMsgType | ||||
from atf_python.sys.netlink.netlink_route import rtnl_ifla_attrs | from atf_python.sys.netlink.netlink_route import rtnl_ifla_attrs | ||||
from atf_python.sys.net.vnet import SingleVnetTestTemplate | from atf_python.sys.net.vnet import SingleVnetTestTemplate | ||||
from atf_python.sys.net.tools import ToolsHelper | |||||
class TestRtNlIface(NetlinkTestTemplate, SingleVnetTestTemplate): | class TestRtNlIface(NetlinkTestTemplate, SingleVnetTestTemplate): | ||||
def setup_method(self, method): | def setup_method(self, method): | ||||
super().setup_method(method) | super().setup_method(method) | ||||
self.setup_netlink(NlConst.NETLINK_ROUTE) | self.setup_netlink(NlConst.NETLINK_ROUTE) | ||||
def get_interface_byname(self, ifname): | def get_interface_byname(self, ifname): | ||||
▲ Show 20 Lines • Show All 289 Lines • ▼ Show 20 Lines | def test_create_vlan_plain(self): | ||||
os_ifname = self.vnet.iface_alias_map["if1"].name | os_ifname = self.vnet.iface_alias_map["if1"].name | ||||
ifindex = socket.if_nametoindex(os_ifname) | ifindex = socket.if_nametoindex(os_ifname) | ||||
flags = NlmNewFlags.NLM_F_EXCL.value | NlmNewFlags.NLM_F_CREATE.value | flags = NlmNewFlags.NLM_F_EXCL.value | NlmNewFlags.NLM_F_CREATE.value | ||||
msg = NetlinkIflaMessage(self.helper, NlRtMsgType.RTM_NEWLINK.value) | msg = NetlinkIflaMessage(self.helper, NlRtMsgType.RTM_NEWLINK.value) | ||||
msg.nl_hdr.nlmsg_flags = ( | msg.nl_hdr.nlmsg_flags = ( | ||||
flags | NlmBaseFlags.NLM_F_ACK.value | NlmBaseFlags.NLM_F_REQUEST.value | flags | NlmBaseFlags.NLM_F_ACK.value | NlmBaseFlags.NLM_F_REQUEST.value | ||||
) | ) | ||||
msg.base_hdr.ifi_index = ifindex | |||||
msg.add_nla(NlAttrU32(IflattrType.IFLA_LINK, ifindex)) | msg.add_nla(NlAttrU32(IflattrType.IFLA_LINK, ifindex)) | ||||
msg.add_nla(NlAttrStr(IflattrType.IFLA_IFNAME, "vlan22")) | msg.add_nla(NlAttrStr(IflattrType.IFLA_IFNAME, "vlan22")) | ||||
msg.add_nla( | msg.add_nla( | ||||
NlAttrNested( | NlAttrNested( | ||||
IflattrType.IFLA_LINKINFO, | IflattrType.IFLA_LINKINFO, | ||||
[ | [ | ||||
NlAttrStrn(IflinkInfo.IFLA_INFO_KIND, "vlan"), | NlAttrStrn(IflinkInfo.IFLA_INFO_KIND, "vlan"), | ||||
NlAttrNested( | NlAttrNested( | ||||
IflinkInfo.IFLA_INFO_DATA, | IflinkInfo.IFLA_INFO_DATA, | ||||
[ | [ | ||||
NlAttrU16(IfLinkInfoDataVlan.IFLA_VLAN_ID, 22), | NlAttrU16(IfLinkInfoDataVlan.IFLA_VLAN_ID, 22), | ||||
], | ], | ||||
), | ), | ||||
], | ], | ||||
) | ) | ||||
) | ) | ||||
rx_msg = self.get_reply(msg) | rx_msg = self.get_reply(msg) | ||||
assert rx_msg.is_type(NlMsgType.NLMSG_ERROR) | assert rx_msg.is_type(NlMsgType.NLMSG_ERROR) | ||||
assert rx_msg.error_code == 0 | assert rx_msg.error_code == 0 | ||||
ToolsHelper.print_net_debug() | |||||
self.get_interface_byname("vlan22") | self.get_interface_byname("vlan22") | ||||
# ToolsHelper.print_net_debug() | # ToolsHelper.print_net_debug() |