mirror of
https://github.com/systemd/systemd
synced 2024-09-06 16:56:43 +00:00
networkd: introduce netdev "Netdevsim" Driver
This "netdevsim" as implied by the name is a tool for network developers and is a simulator. This simulated networking device is used for testing various networking APIs and at this time is particularly focused on testing hardware offloading related interfaces.
This commit is contained in:
parent
33de6b57a8
commit
56e7fb5088
|
@ -174,6 +174,8 @@
|
|||
<row><entry><varname>wireguard</varname></entry>
|
||||
<entry>WireGuard Secure Network Tunnel.</entry></row>
|
||||
|
||||
<row><entry><varname>netdevsim</varname></entry>
|
||||
<entry> A simulator. This simulated networking device is used for testing various networking APIs and at this time is particularly focused on testing hardware offloading related interfaces.</entry></row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
|
|
@ -325,6 +325,7 @@ static const char* const nl_union_link_info_data_table[] = {
|
|||
[NL_UNION_LINK_INFO_DATA_GENEVE] = "geneve",
|
||||
[NL_UNION_LINK_INFO_DATA_VXCAN] = "vxcan",
|
||||
[NL_UNION_LINK_INFO_DATA_WIREGUARD] = "wireguard",
|
||||
[NL_UNION_LINK_INFO_DATA_NETDEVSIM] = "netdevsim",
|
||||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(nl_union_link_info_data, NLUnionLinkInfoData);
|
||||
|
|
|
@ -82,6 +82,7 @@ typedef enum NLUnionLinkInfoData {
|
|||
NL_UNION_LINK_INFO_DATA_GENEVE,
|
||||
NL_UNION_LINK_INFO_DATA_VXCAN,
|
||||
NL_UNION_LINK_INFO_DATA_WIREGUARD,
|
||||
NL_UNION_LINK_INFO_DATA_NETDEVSIM,
|
||||
_NL_UNION_LINK_INFO_DATA_MAX,
|
||||
_NL_UNION_LINK_INFO_DATA_INVALID = -1
|
||||
} NLUnionLinkInfoData;
|
||||
|
|
|
@ -35,6 +35,8 @@ sources = files('''
|
|||
netdev/vxcan.h
|
||||
netdev/wireguard.c
|
||||
netdev/wireguard.h
|
||||
netdev/netdevsim.c
|
||||
netdev/netdevsim.h
|
||||
networkd-address-label.c
|
||||
networkd-address-label.h
|
||||
networkd-address-pool.c
|
||||
|
|
|
@ -37,6 +37,7 @@
|
|||
#include "netdev/vcan.h"
|
||||
#include "netdev/vxcan.h"
|
||||
#include "netdev/wireguard.h"
|
||||
#include "netdev/netdevsim.h"
|
||||
|
||||
const NetDevVTable * const netdev_vtable[_NETDEV_KIND_MAX] = {
|
||||
[NETDEV_KIND_BRIDGE] = &bridge_vtable,
|
||||
|
@ -64,6 +65,7 @@ const NetDevVTable * const netdev_vtable[_NETDEV_KIND_MAX] = {
|
|||
[NETDEV_KIND_GENEVE] = &geneve_vtable,
|
||||
[NETDEV_KIND_VXCAN] = &vxcan_vtable,
|
||||
[NETDEV_KIND_WIREGUARD] = &wireguard_vtable,
|
||||
[NETDEV_KIND_NETDEVSIM] = &netdevsim_vtable,
|
||||
};
|
||||
|
||||
static const char* const netdev_kind_table[_NETDEV_KIND_MAX] = {
|
||||
|
@ -92,6 +94,7 @@ static const char* const netdev_kind_table[_NETDEV_KIND_MAX] = {
|
|||
[NETDEV_KIND_GENEVE] = "geneve",
|
||||
[NETDEV_KIND_VXCAN] = "vxcan",
|
||||
[NETDEV_KIND_WIREGUARD] = "wireguard",
|
||||
[NETDEV_KIND_NETDEVSIM] = "netdevsim",
|
||||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(netdev_kind, NetDevKind);
|
||||
|
|
|
@ -48,6 +48,7 @@ typedef enum NetDevKind {
|
|||
NETDEV_KIND_GENEVE,
|
||||
NETDEV_KIND_VXCAN,
|
||||
NETDEV_KIND_WIREGUARD,
|
||||
NETDEV_KIND_NETDEVSIM,
|
||||
_NETDEV_KIND_MAX,
|
||||
_NETDEV_KIND_INVALID = -1
|
||||
} NetDevKind;
|
||||
|
|
15
src/network/netdev/netdevsim.c
Normal file
15
src/network/netdev/netdevsim.c
Normal file
|
@ -0,0 +1,15 @@
|
|||
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2018 Susant Sahani
|
||||
***/
|
||||
|
||||
#include "netdev/netdevsim.h"
|
||||
#include "missing.h"
|
||||
|
||||
const NetDevVTable netdevsim_vtable = {
|
||||
.object_size = sizeof(NetDevSim),
|
||||
.sections = "Match\0NetDev\0",
|
||||
.create_type = NETDEV_CREATE_INDEPENDENT,
|
||||
};
|
19
src/network/netdev/netdevsim.h
Normal file
19
src/network/netdev/netdevsim.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||||
#pragma once
|
||||
|
||||
/***
|
||||
This file is part of systemd.
|
||||
|
||||
Copyright 2018 Susant Sahani
|
||||
***/
|
||||
|
||||
typedef struct NetDevSim NetDevSim;
|
||||
|
||||
#include "netdev/netdev.h"
|
||||
|
||||
struct NetDevSim {
|
||||
NetDev meta;
|
||||
};
|
||||
|
||||
DEFINE_NETDEV_CAST(NETDEVSIM, NetDevSim);
|
||||
extern const NetDevVTable netdevsim_vtable;
|
Loading…
Reference in a new issue