mirror of
https://github.com/systemd/systemd
synced 2026-04-11 17:44:58 +02:00
Compare commits
No commits in common. "a2ccfc9ccb7573eac588d5fd9ac062969541ec5a" and "04b457d8ef9c93be3b2048c6f545cdbcf1b893a1" have entirely different histories.
a2ccfc9ccb
...
04b457d8ef
7
.github/workflows/build_test.sh
vendored
7
.github/workflows/build_test.sh
vendored
@ -80,10 +80,9 @@ if [[ "$COMPILER" == clang ]]; then
|
||||
# llvm package if available in such cases to avoid that.
|
||||
if ! apt show --quiet "llvm-$COMPILER_VERSION" &>/dev/null; then
|
||||
# Latest LLVM stack deb packages provided by https://apt.llvm.org/
|
||||
# Following snippet was partly borrowed from https://apt.llvm.org/llvm.sh
|
||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --yes --dearmor --output /usr/share/keyrings/apt-llvm-org.gpg
|
||||
printf "deb [signed-by=/usr/share/keyrings/apt-llvm-org.gpg] http://apt.llvm.org/%s/ llvm-toolchain-%s-%s main\n" \
|
||||
"$RELEASE" "$RELEASE" "$COMPILER_VERSION" >/etc/apt/sources.list.d/llvm-toolchain.list
|
||||
# Following snippet was borrowed from https://apt.llvm.org/llvm.sh
|
||||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
|
||||
add-apt-repository -y "deb http://apt.llvm.org/$RELEASE/ llvm-toolchain-$RELEASE-$COMPILER_VERSION main"
|
||||
PACKAGES+=("clang-$COMPILER_VERSION" "lldb-$COMPILER_VERSION" "lld-$COMPILER_VERSION" "clangd-$COMPILER_VERSION")
|
||||
fi
|
||||
elif [[ "$COMPILER" == gcc ]]; then
|
||||
|
||||
@ -573,11 +573,7 @@
|
||||
<varlistentry>
|
||||
<term><varname>Local=</varname></term>
|
||||
<listitem>
|
||||
<para>Configures local IP address. It must be an address on the underlying interface of the
|
||||
VXLAN interface, or one of the special values <literal>ipv4_link_local</literal>,
|
||||
<literal>ipv6_link_local</literal>, <literal>dhcp4</literal>, <literal>dhcp6</literal>, and
|
||||
<literal>slaac</literal>. If one of the special values is specified, an address which matches
|
||||
the corresponding type on the underlying interface will be used. Defaults to unset.</para>
|
||||
<para>Configures local IP address.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
|
||||
@ -288,7 +288,6 @@ struct btrfs_ioctl_fs_info_args {
|
||||
* first mount when booting older kernel versions.
|
||||
*/
|
||||
#define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
|
||||
#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
|
||||
|
||||
#define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
|
||||
#define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
|
||||
@ -771,16 +770,10 @@ struct btrfs_ioctl_received_subvol_args {
|
||||
*/
|
||||
#define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
|
||||
|
||||
/*
|
||||
* Read the protocol version in the structure
|
||||
*/
|
||||
#define BTRFS_SEND_FLAG_VERSION 0x8
|
||||
|
||||
#define BTRFS_SEND_FLAG_MASK \
|
||||
(BTRFS_SEND_FLAG_NO_FILE_DATA | \
|
||||
BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | \
|
||||
BTRFS_SEND_FLAG_OMIT_END_CMD | \
|
||||
BTRFS_SEND_FLAG_VERSION)
|
||||
BTRFS_SEND_FLAG_OMIT_END_CMD)
|
||||
|
||||
struct btrfs_ioctl_send_args {
|
||||
__s64 send_fd; /* in */
|
||||
@ -788,8 +781,7 @@ struct btrfs_ioctl_send_args {
|
||||
__u64 *clone_sources; /* in */
|
||||
__u64 parent_root; /* in */
|
||||
__u64 flags; /* in */
|
||||
__u32 version; /* in */
|
||||
__u8 reserved[28]; /* in */
|
||||
__u64 reserved[4]; /* in */
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@ -118,29 +118,6 @@
|
||||
#define BTRFS_INODE_REF_KEY 12
|
||||
#define BTRFS_INODE_EXTREF_KEY 13
|
||||
#define BTRFS_XATTR_ITEM_KEY 24
|
||||
|
||||
/*
|
||||
* fs verity items are stored under two different key types on disk.
|
||||
* The descriptor items:
|
||||
* [ inode objectid, BTRFS_VERITY_DESC_ITEM_KEY, offset ]
|
||||
*
|
||||
* At offset 0, we store a btrfs_verity_descriptor_item which tracks the size
|
||||
* of the descriptor item and some extra data for encryption.
|
||||
* Starting at offset 1, these hold the generic fs verity descriptor. The
|
||||
* latter are opaque to btrfs, we just read and write them as a blob for the
|
||||
* higher level verity code. The most common descriptor size is 256 bytes.
|
||||
*
|
||||
* The merkle tree items:
|
||||
* [ inode objectid, BTRFS_VERITY_MERKLE_ITEM_KEY, offset ]
|
||||
*
|
||||
* These also start at offset 0, and correspond to the merkle tree bytes. When
|
||||
* fsverity asks for page 0 of the merkle tree, we pull up one page starting at
|
||||
* offset 0 for this key type. These are also opaque to btrfs, we're blindly
|
||||
* storing whatever fsverity sends down.
|
||||
*/
|
||||
#define BTRFS_VERITY_DESC_ITEM_KEY 36
|
||||
#define BTRFS_VERITY_MERKLE_ITEM_KEY 37
|
||||
|
||||
#define BTRFS_ORPHAN_ITEM_KEY 48
|
||||
/* reserve 2-15 close to the inode for later flexibility */
|
||||
|
||||
@ -1014,16 +991,4 @@ struct btrfs_qgroup_limit_item {
|
||||
__le64 rsv_excl;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
struct btrfs_verity_descriptor_item {
|
||||
/* Size of the verity descriptor in bytes */
|
||||
__le64 size;
|
||||
/*
|
||||
* When we implement support for fscrypt, we will need to encrypt the
|
||||
* Merkle tree for encrypted verity files. These 128 bits are for the
|
||||
* eventual storage of an fscrypt initialization vector.
|
||||
*/
|
||||
__le64 reserved[2];
|
||||
__u8 encryption;
|
||||
} __attribute__ ((__packed__));
|
||||
|
||||
#endif /* _BTRFS_CTREE_H_ */
|
||||
|
||||
@ -101,8 +101,6 @@ struct can_ctrlmode {
|
||||
#define CAN_CTRLMODE_PRESUME_ACK 0x40 /* Ignore missing CAN ACKs */
|
||||
#define CAN_CTRLMODE_FD_NON_ISO 0x80 /* CAN FD in non-ISO mode */
|
||||
#define CAN_CTRLMODE_CC_LEN8_DLC 0x100 /* Classic CAN DLC option */
|
||||
#define CAN_CTRLMODE_TDC_AUTO 0x200 /* CAN transiver automatically calculates TDCV */
|
||||
#define CAN_CTRLMODE_TDC_MANUAL 0x400 /* TDCV is manually set up by user */
|
||||
|
||||
/*
|
||||
* CAN device statistics
|
||||
@ -136,35 +134,10 @@ enum {
|
||||
IFLA_CAN_BITRATE_CONST,
|
||||
IFLA_CAN_DATA_BITRATE_CONST,
|
||||
IFLA_CAN_BITRATE_MAX,
|
||||
IFLA_CAN_TDC,
|
||||
|
||||
/* add new constants above here */
|
||||
__IFLA_CAN_MAX,
|
||||
IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
|
||||
__IFLA_CAN_MAX
|
||||
};
|
||||
|
||||
/*
|
||||
* CAN FD Transmitter Delay Compensation (TDC)
|
||||
*
|
||||
* Please refer to struct can_tdc_const and can_tdc in
|
||||
* include/linux/can/bittiming.h for further details.
|
||||
*/
|
||||
enum {
|
||||
IFLA_CAN_TDC_UNSPEC,
|
||||
IFLA_CAN_TDC_TDCV_MIN, /* u32 */
|
||||
IFLA_CAN_TDC_TDCV_MAX, /* u32 */
|
||||
IFLA_CAN_TDC_TDCO_MIN, /* u32 */
|
||||
IFLA_CAN_TDC_TDCO_MAX, /* u32 */
|
||||
IFLA_CAN_TDC_TDCF_MIN, /* u32 */
|
||||
IFLA_CAN_TDC_TDCF_MAX, /* u32 */
|
||||
IFLA_CAN_TDC_TDCV, /* u32 */
|
||||
IFLA_CAN_TDC_TDCO, /* u32 */
|
||||
IFLA_CAN_TDC_TDCF, /* u32 */
|
||||
|
||||
/* add new constants above here */
|
||||
__IFLA_CAN_TDC,
|
||||
IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
|
||||
};
|
||||
#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
|
||||
|
||||
/* u16 termination range: 1..65535 Ohms */
|
||||
#define CAN_TERMINATION_DISABLED 0
|
||||
|
||||
@ -479,22 +479,16 @@ enum {
|
||||
|
||||
/* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */
|
||||
#define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) /* Include stats in the dump */
|
||||
#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1) /* Dump global vlan options only */
|
||||
|
||||
/* Bridge vlan RTM attributes
|
||||
* [BRIDGE_VLANDB_ENTRY] = {
|
||||
* [BRIDGE_VLANDB_ENTRY_INFO]
|
||||
* ...
|
||||
* }
|
||||
* [BRIDGE_VLANDB_GLOBAL_OPTIONS] = {
|
||||
* [BRIDGE_VLANDB_GOPTS_ID]
|
||||
* ...
|
||||
* }
|
||||
*/
|
||||
enum {
|
||||
BRIDGE_VLANDB_UNSPEC,
|
||||
BRIDGE_VLANDB_ENTRY,
|
||||
BRIDGE_VLANDB_GLOBAL_OPTIONS,
|
||||
__BRIDGE_VLANDB_MAX,
|
||||
};
|
||||
#define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
|
||||
@ -506,7 +500,6 @@ enum {
|
||||
BRIDGE_VLANDB_ENTRY_STATE,
|
||||
BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
|
||||
BRIDGE_VLANDB_ENTRY_STATS,
|
||||
BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
|
||||
__BRIDGE_VLANDB_ENTRY_MAX,
|
||||
};
|
||||
#define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
|
||||
@ -545,29 +538,6 @@ enum {
|
||||
};
|
||||
#define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
|
||||
|
||||
enum {
|
||||
BRIDGE_VLANDB_GOPTS_UNSPEC,
|
||||
BRIDGE_VLANDB_GOPTS_ID,
|
||||
BRIDGE_VLANDB_GOPTS_RANGE,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
|
||||
BRIDGE_VLANDB_GOPTS_PAD,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
|
||||
BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
|
||||
__BRIDGE_VLANDB_GOPTS_MAX
|
||||
};
|
||||
#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
|
||||
|
||||
/* Bridge multicast database attributes
|
||||
* [MDBA_MDB] = {
|
||||
* [MDBA_MDB_ENTRY] = {
|
||||
@ -659,7 +629,6 @@ enum {
|
||||
MDBA_ROUTER_PATTR_TYPE,
|
||||
MDBA_ROUTER_PATTR_INET_TIMER,
|
||||
MDBA_ROUTER_PATTR_INET6_TIMER,
|
||||
MDBA_ROUTER_PATTR_VID,
|
||||
__MDBA_ROUTER_PATTR_MAX
|
||||
};
|
||||
#define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
|
||||
@ -751,14 +720,12 @@ struct br_mcast_stats {
|
||||
|
||||
/* bridge boolean options
|
||||
* BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
|
||||
* BR_BOOLOPT_MCAST_VLAN_SNOOPING - control vlan multicast snooping
|
||||
*
|
||||
* IMPORTANT: if adding a new option do not forget to handle
|
||||
* it in br_boolopt_toggle/get and bridge sysfs
|
||||
*/
|
||||
enum br_boolopt_id {
|
||||
BR_BOOLOPT_NO_LL_LEARN,
|
||||
BR_BOOLOPT_MCAST_VLAN_SNOOPING,
|
||||
BR_BOOLOPT_MAX
|
||||
};
|
||||
|
||||
@ -771,17 +738,4 @@ struct br_boolopt_multi {
|
||||
__u32 optval;
|
||||
__u32 optmask;
|
||||
};
|
||||
|
||||
enum {
|
||||
BRIDGE_QUERIER_UNSPEC,
|
||||
BRIDGE_QUERIER_IP_ADDRESS,
|
||||
BRIDGE_QUERIER_IP_PORT,
|
||||
BRIDGE_QUERIER_IP_OTHER_TIMER,
|
||||
BRIDGE_QUERIER_PAD,
|
||||
BRIDGE_QUERIER_IPV6_ADDRESS,
|
||||
BRIDGE_QUERIER_IPV6_PORT,
|
||||
BRIDGE_QUERIER_IPV6_OTHER_TIMER,
|
||||
__BRIDGE_QUERIER_MAX
|
||||
};
|
||||
#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
|
||||
#endif /* _UAPI_LINUX_IF_BRIDGE_H */
|
||||
|
||||
@ -86,7 +86,6 @@
|
||||
* over Ethernet
|
||||
*/
|
||||
#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
|
||||
#define ETH_P_REALTEK 0x8899 /* Multiple proprietary protocols */
|
||||
#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
|
||||
#define ETH_P_8021AD 0x88A8 /* 802.1ad Service VLAN */
|
||||
#define ETH_P_802_EX1 0x88B5 /* 802.1 Local Experimental 1. */
|
||||
@ -117,7 +116,7 @@
|
||||
#define ETH_P_IFE 0xED3E /* ForCES inter-FE LFB type */
|
||||
#define ETH_P_AF_IUCV 0xFBFB /* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
|
||||
|
||||
#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is more than this value
|
||||
#define ETH_P_802_3_MIN 0x0600 /* If the value in the ethernet type is less than this value
|
||||
* then the frame is Ethernet II. Else it is 802.3 */
|
||||
|
||||
/*
|
||||
@ -152,9 +151,6 @@
|
||||
#define ETH_P_MAP 0x00F9 /* Qualcomm multiplexing and
|
||||
* aggregation protocol
|
||||
*/
|
||||
#define ETH_P_MCTP 0x00FA /* Management component transport
|
||||
* protocol packets
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is an Ethernet frame header.
|
||||
|
||||
@ -417,7 +417,6 @@ enum {
|
||||
IFLA_INET6_ICMP6STATS, /* statistics (icmpv6) */
|
||||
IFLA_INET6_TOKEN, /* device token */
|
||||
IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
|
||||
IFLA_INET6_RA_MTU, /* mtu carried in the RA message */
|
||||
__IFLA_INET6_MAX
|
||||
};
|
||||
|
||||
@ -480,7 +479,6 @@ enum {
|
||||
IFLA_BR_MCAST_MLD_VERSION,
|
||||
IFLA_BR_VLAN_STATS_PER_PORT,
|
||||
IFLA_BR_MULTI_BOOLOPT,
|
||||
IFLA_BR_MCAST_QUERIER_STATE,
|
||||
__IFLA_BR_MAX,
|
||||
};
|
||||
|
||||
@ -857,7 +855,6 @@ enum {
|
||||
IFLA_BOND_AD_ACTOR_SYSTEM,
|
||||
IFLA_BOND_TLB_DYNAMIC_LB,
|
||||
IFLA_BOND_PEER_NOTIF_DELAY,
|
||||
IFLA_BOND_AD_LACP_ACTIVE,
|
||||
__IFLA_BOND_MAX,
|
||||
};
|
||||
|
||||
@ -1263,14 +1260,4 @@ struct ifla_rmnet_flags {
|
||||
__u32 mask;
|
||||
};
|
||||
|
||||
/* MCTP section */
|
||||
|
||||
enum {
|
||||
IFLA_MCTP_UNSPEC,
|
||||
IFLA_MCTP_NET,
|
||||
__IFLA_MCTP_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
|
||||
|
||||
#endif /* _UAPI_LINUX_IF_LINK_H */
|
||||
|
||||
@ -188,22 +188,11 @@ struct ip_mreq_source {
|
||||
};
|
||||
|
||||
struct ip_msfilter {
|
||||
union {
|
||||
struct {
|
||||
__be32 imsf_multiaddr_aux;
|
||||
__be32 imsf_interface_aux;
|
||||
__u32 imsf_fmode_aux;
|
||||
__u32 imsf_numsrc_aux;
|
||||
__be32 imsf_slist[1];
|
||||
};
|
||||
struct {
|
||||
__be32 imsf_multiaddr;
|
||||
__be32 imsf_interface;
|
||||
__u32 imsf_fmode;
|
||||
__u32 imsf_numsrc;
|
||||
__be32 imsf_slist_flex[];
|
||||
};
|
||||
};
|
||||
__be32 imsf_slist[1];
|
||||
};
|
||||
|
||||
#define IP_MSFILTER_SIZE(numsrc) \
|
||||
@ -222,22 +211,11 @@ struct group_source_req {
|
||||
};
|
||||
|
||||
struct group_filter {
|
||||
union {
|
||||
struct {
|
||||
__u32 gf_interface_aux; /* interface index */
|
||||
struct __kernel_sockaddr_storage gf_group_aux; /* multicast address */
|
||||
__u32 gf_fmode_aux; /* filter mode */
|
||||
__u32 gf_numsrc_aux; /* number of sources */
|
||||
struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */
|
||||
};
|
||||
struct {
|
||||
__u32 gf_interface; /* interface index */
|
||||
struct __kernel_sockaddr_storage gf_group; /* multicast address */
|
||||
__u32 gf_fmode; /* filter mode */
|
||||
__u32 gf_numsrc; /* number of sources */
|
||||
struct __kernel_sockaddr_storage gf_slist_flex[]; /* interface index */
|
||||
};
|
||||
};
|
||||
struct __kernel_sockaddr_storage gf_slist[1]; /* interface index */
|
||||
};
|
||||
|
||||
#define GROUP_FILTER_SIZE(numsrc) \
|
||||
|
||||
@ -145,7 +145,6 @@ struct in6_flowlabel_req {
|
||||
#define IPV6_TLV_PADN 1
|
||||
#define IPV6_TLV_ROUTERALERT 5
|
||||
#define IPV6_TLV_CALIPSO 7 /* RFC 5570 */
|
||||
#define IPV6_TLV_IOAM 49 /* TEMPORARY IANA allocation for IOAM */
|
||||
#define IPV6_TLV_JUMBO 194
|
||||
#define IPV6_TLV_HAO 201 /* home address option */
|
||||
|
||||
|
||||
@ -753,13 +753,11 @@ enum nft_dynset_attributes {
|
||||
* @NFT_PAYLOAD_LL_HEADER: link layer header
|
||||
* @NFT_PAYLOAD_NETWORK_HEADER: network header
|
||||
* @NFT_PAYLOAD_TRANSPORT_HEADER: transport header
|
||||
* @NFT_PAYLOAD_INNER_HEADER: inner header / payload
|
||||
*/
|
||||
enum nft_payload_bases {
|
||||
NFT_PAYLOAD_LL_HEADER,
|
||||
NFT_PAYLOAD_NETWORK_HEADER,
|
||||
NFT_PAYLOAD_TRANSPORT_HEADER,
|
||||
NFT_PAYLOAD_INNER_HEADER,
|
||||
};
|
||||
|
||||
/**
|
||||
@ -898,8 +896,7 @@ enum nft_meta_keys {
|
||||
NFT_META_OIF,
|
||||
NFT_META_IIFNAME,
|
||||
NFT_META_OIFNAME,
|
||||
NFT_META_IFTYPE,
|
||||
#define NFT_META_IIFTYPE NFT_META_IFTYPE
|
||||
NFT_META_IIFTYPE,
|
||||
NFT_META_OIFTYPE,
|
||||
NFT_META_SKUID,
|
||||
NFT_META_SKGID,
|
||||
@ -926,7 +923,6 @@ enum nft_meta_keys {
|
||||
NFT_META_TIME_HOUR,
|
||||
NFT_META_SDIF,
|
||||
NFT_META_SDIFNAME,
|
||||
__NFT_META_IIFTYPE,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@ -300,29 +300,6 @@
|
||||
* the interface goes down.
|
||||
*/
|
||||
|
||||
/**
|
||||
* DOC: FILS shared key crypto offload
|
||||
*
|
||||
* This feature is applicable to drivers running in AP mode.
|
||||
*
|
||||
* FILS shared key crypto offload can be advertised by drivers by setting
|
||||
* @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
|
||||
* FILS shared key crypto offload should be able to encrypt and decrypt
|
||||
* association frames for FILS shared key authentication as per IEEE 802.11ai.
|
||||
* With this capability, for FILS key derivation, drivers depend on userspace.
|
||||
*
|
||||
* After FILS key derivation, userspace shares the FILS AAD details with the
|
||||
* driver and the driver stores the same to use in decryption of association
|
||||
* request and in encryption of association response. The below parameters
|
||||
* should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
|
||||
* %NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
|
||||
* %NL80211_ATTR_FILS_KEK - Used for encryption or decryption
|
||||
* %NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
|
||||
* (STA Nonce 16 bytes followed by AP Nonce 16 bytes)
|
||||
*
|
||||
* Once the association is done, the driver cleans the FILS AAD data.
|
||||
*/
|
||||
|
||||
/**
|
||||
* enum nl80211_commands - supported nl80211 commands
|
||||
*
|
||||
@ -360,10 +337,7 @@
|
||||
* @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
|
||||
* %NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
|
||||
* userspace to request deletion of a virtual interface, then requires
|
||||
* attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are
|
||||
* enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS,
|
||||
* and if this command is used for the transmitting interface, then all
|
||||
* the non-transmitting interfaces are deleted as well.
|
||||
* attribute %NL80211_ATTR_IFINDEX.
|
||||
*
|
||||
* @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
|
||||
* by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
|
||||
@ -1226,12 +1200,6 @@
|
||||
* @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
|
||||
* has completed
|
||||
*
|
||||
* @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
|
||||
* &NL80211_ATTR_MAC - for STA MAC address
|
||||
* &NL80211_ATTR_FILS_KEK - for KEK
|
||||
* &NL80211_ATTR_FILS_NONCES - for FILS Nonces
|
||||
* (STA Nonce 16 bytes followed by AP Nonce 16 bytes)
|
||||
*
|
||||
* @NL80211_CMD_MAX: highest used command number
|
||||
* @__NL80211_CMD_AFTER_LAST: internal use
|
||||
*/
|
||||
@ -1472,8 +1440,6 @@ enum nl80211_commands {
|
||||
NL80211_CMD_COLOR_CHANGE_ABORTED,
|
||||
NL80211_CMD_COLOR_CHANGE_COMPLETED,
|
||||
|
||||
NL80211_CMD_SET_FILS_AAD,
|
||||
|
||||
/* add new commands above here */
|
||||
|
||||
/* used to define NL80211_CMD_MAX below */
|
||||
@ -2627,18 +2593,6 @@ enum nl80211_commands {
|
||||
* @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE
|
||||
* information for the time while performing a color switch.
|
||||
*
|
||||
* @NL80211_ATTR_MBSSID_CONFIG: Nested attribute for multiple BSSID
|
||||
* advertisements (MBSSID) parameters in AP mode.
|
||||
* Kernel uses this attribute to indicate the driver's support for MBSSID
|
||||
* and enhanced multi-BSSID advertisements (EMA AP) to the userspace.
|
||||
* Userspace should use this attribute to configure per interface MBSSID
|
||||
* parameters.
|
||||
* See &enum nl80211_mbssid_config_attributes for details.
|
||||
*
|
||||
* @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements.
|
||||
* Mandatory parameter for the transmitting interface to enable MBSSID.
|
||||
* Optional for the non-transmitting interfaces.
|
||||
*
|
||||
* @NUM_NL80211_ATTR: total number of nl80211_attrs available
|
||||
* @NL80211_ATTR_MAX: highest attribute number currently defined
|
||||
* @__NL80211_ATTR_AFTER_LAST: internal use
|
||||
@ -3142,9 +3096,6 @@ enum nl80211_attrs {
|
||||
NL80211_ATTR_COLOR_CHANGE_COLOR,
|
||||
NL80211_ATTR_COLOR_CHANGE_ELEMS,
|
||||
|
||||
NL80211_ATTR_MBSSID_CONFIG,
|
||||
NL80211_ATTR_MBSSID_ELEMS,
|
||||
|
||||
/* add attributes here, update the policy in nl80211.c */
|
||||
|
||||
__NL80211_ATTR_AFTER_LAST,
|
||||
@ -4978,7 +4929,6 @@ enum nl80211_txrate_gi {
|
||||
* @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
|
||||
* @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
|
||||
* @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
|
||||
* @NL80211_BAND_LC: light communication band (placeholder)
|
||||
* @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
|
||||
* since newer kernel versions may support more bands
|
||||
*/
|
||||
@ -4988,7 +4938,6 @@ enum nl80211_band {
|
||||
NL80211_BAND_60GHZ,
|
||||
NL80211_BAND_6GHZ,
|
||||
NL80211_BAND_S1GHZ,
|
||||
NL80211_BAND_LC,
|
||||
|
||||
NUM_NL80211_BANDS,
|
||||
};
|
||||
@ -6046,11 +5995,6 @@ enum nl80211_feature_flags {
|
||||
* @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
|
||||
* detection and change announcemnts.
|
||||
*
|
||||
* @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
|
||||
* FILS encryption and decryption for (Re)Association Request and Response
|
||||
* frames. Userspace has to share FILS AAD details to the driver by using
|
||||
* @NL80211_CMD_SET_FILS_AAD.
|
||||
*
|
||||
* @NUM_NL80211_EXT_FEATURES: number of extended features.
|
||||
* @MAX_NL80211_EXT_FEATURES: highest extended feature index.
|
||||
*/
|
||||
@ -6116,7 +6060,6 @@ enum nl80211_ext_feature_index {
|
||||
NL80211_EXT_FEATURE_SECURE_RTT,
|
||||
NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
|
||||
NL80211_EXT_FEATURE_BSS_COLOR,
|
||||
NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
|
||||
|
||||
/* add new features before the definition below */
|
||||
NUM_NL80211_EXT_FEATURES,
|
||||
@ -7406,60 +7349,4 @@ enum nl80211_sar_specs_attrs {
|
||||
NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced
|
||||
* multi-BSSID advertisements (EMA) in AP mode.
|
||||
* Kernel uses some of these attributes to advertise driver's support for
|
||||
* MBSSID and EMA.
|
||||
* Remaining attributes should be used by the userspace to configure the
|
||||
* features.
|
||||
*
|
||||
* @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid
|
||||
*
|
||||
* @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise
|
||||
* the maximum number of MBSSID interfaces supported by the driver.
|
||||
* Driver should indicate MBSSID support by setting
|
||||
* wiphy->mbssid_max_interfaces to a value more than or equal to 2.
|
||||
*
|
||||
* @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
|
||||
* to advertise the maximum profile periodicity supported by the driver
|
||||
* if EMA is enabled. Driver should indicate EMA support to the userspace
|
||||
* by setting wiphy->ema_max_profile_periodicity to
|
||||
* a non-zero value.
|
||||
*
|
||||
* @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
|
||||
* this BSS (u8) in the multiple BSSID set.
|
||||
* Value must be set to 0 for the transmitting interface and non-zero for
|
||||
* all non-transmitting interfaces. The userspace will be responsible
|
||||
* for using unique indices for the interfaces.
|
||||
* Range: 0 to wiphy->mbssid_max_interfaces-1.
|
||||
*
|
||||
* @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for
|
||||
* a non-transmitted profile which provides the interface index (u32) of
|
||||
* the transmitted profile. The value must match one of the interface
|
||||
* indices advertised by the kernel. Optional if the interface being set up
|
||||
* is the transmitting one, however, if provided then the value must match
|
||||
* the interface index of the same.
|
||||
*
|
||||
* @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
|
||||
* Setting this flag is permitted only if the driver advertises EMA support
|
||||
* by setting wiphy->ema_max_profile_periodicity to non-zero.
|
||||
*
|
||||
* @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
|
||||
* @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
|
||||
*/
|
||||
enum nl80211_mbssid_config_attributes {
|
||||
__NL80211_MBSSID_CONFIG_ATTR_INVALID,
|
||||
|
||||
NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
|
||||
NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
|
||||
NL80211_MBSSID_CONFIG_ATTR_INDEX,
|
||||
NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
|
||||
NL80211_MBSSID_CONFIG_ATTR_EMA,
|
||||
|
||||
/* keep last */
|
||||
__NL80211_MBSSID_CONFIG_ATTR_LAST,
|
||||
NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
|
||||
};
|
||||
|
||||
#endif /* __LINUX_NL80211_H */
|
||||
|
||||
@ -827,8 +827,6 @@ struct tc_codel_xstats {
|
||||
|
||||
/* FQ_CODEL */
|
||||
|
||||
#define FQ_CODEL_QUANTUM_MAX (1 << 20)
|
||||
|
||||
enum {
|
||||
TCA_FQ_CODEL_UNSPEC,
|
||||
TCA_FQ_CODEL_TARGET,
|
||||
@ -840,8 +838,6 @@ enum {
|
||||
TCA_FQ_CODEL_CE_THRESHOLD,
|
||||
TCA_FQ_CODEL_DROP_BATCH_SIZE,
|
||||
TCA_FQ_CODEL_MEMORY_LIMIT,
|
||||
TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
|
||||
TCA_FQ_CODEL_CE_THRESHOLD_MASK,
|
||||
__TCA_FQ_CODEL_MAX
|
||||
};
|
||||
|
||||
|
||||
@ -22,24 +22,9 @@ static const char* const df_table[_NETDEV_VXLAN_DF_MAX] = {
|
||||
DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(df, VxLanDF, NETDEV_VXLAN_DF_YES);
|
||||
DEFINE_CONFIG_PARSE_ENUM(config_parse_df, df, VxLanDF, "Failed to parse VXLAN IPDoNotFragment= setting");
|
||||
|
||||
static int vxlan_get_local_address(VxLan *v, Link *link, int *ret_family, union in_addr_union *ret_address) {
|
||||
assert(v);
|
||||
|
||||
if (v->local_type < 0) {
|
||||
if (ret_family)
|
||||
*ret_family = v->local_family;
|
||||
if (ret_address)
|
||||
*ret_address = v->local;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return link_get_local_address(link, v->local_type, v->local_family, ret_family, ret_address);
|
||||
}
|
||||
|
||||
static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netlink_message *m) {
|
||||
union in_addr_union local;
|
||||
int local_family, r;
|
||||
VxLan *v;
|
||||
int r;
|
||||
|
||||
assert(netdev);
|
||||
assert(m);
|
||||
@ -70,15 +55,11 @@ static int netdev_vxlan_fill_message_create(NetDev *netdev, Link *link, sd_netli
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_GROUP attribute: %m");
|
||||
}
|
||||
|
||||
r = vxlan_get_local_address(v, link, &local_family, &local);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not find local address: %m");
|
||||
|
||||
if (in_addr_is_set(local_family, &local)) {
|
||||
if (local_family == AF_INET)
|
||||
r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_LOCAL, &local.in);
|
||||
if (in_addr_is_set(v->local_family, &v->local)) {
|
||||
if (v->local_family == AF_INET)
|
||||
r = sd_netlink_message_append_in_addr(m, IFLA_VXLAN_LOCAL, &v->local.in);
|
||||
else
|
||||
r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_LOCAL6, &local.in6);
|
||||
r = sd_netlink_message_append_in6_addr(m, IFLA_VXLAN_LOCAL6, &v->local.in6);
|
||||
if (r < 0)
|
||||
return log_netdev_error_errno(netdev, r, "Could not append IFLA_VXLAN_LOCAL attribute: %m");
|
||||
}
|
||||
@ -209,45 +190,16 @@ int config_parse_vxlan_address(
|
||||
|
||||
VxLan *v = userdata;
|
||||
union in_addr_union *addr = data, buffer;
|
||||
int *family, f, r;
|
||||
int r, f;
|
||||
|
||||
assert(filename);
|
||||
assert(lvalue);
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
assert(userdata);
|
||||
|
||||
if (streq(lvalue, "Local"))
|
||||
family = &v->local_family;
|
||||
else if (streq(lvalue, "Remote"))
|
||||
family = &v->remote_family;
|
||||
else if (streq(lvalue, "Group"))
|
||||
family = &v->group_family;
|
||||
else
|
||||
assert_not_reached();
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
*addr = IN_ADDR_NULL;
|
||||
*family = AF_UNSPEC;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (streq(lvalue, "Local")) {
|
||||
NetDevLocalAddressType t;
|
||||
|
||||
t = netdev_local_address_type_from_string(rvalue);
|
||||
if (t >= 0) {
|
||||
v->local = IN_ADDR_NULL;
|
||||
v->local_family = AF_UNSPEC;
|
||||
v->local_type = t;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
r = in_addr_from_string_auto(rvalue, &f, &buffer);
|
||||
if (r < 0) {
|
||||
log_syntax(unit, LOG_WARNING, filename, line, r,
|
||||
"Failed to parse %s=, ignoring assignment: %s", lvalue, rvalue);
|
||||
log_syntax(unit, LOG_WARNING, filename, line, r, "vxlan '%s' address is invalid, ignoring assignment: %s", lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -255,22 +207,24 @@ int config_parse_vxlan_address(
|
||||
|
||||
if (streq(lvalue, "Group")) {
|
||||
if (r <= 0) {
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0,
|
||||
"%s= must be a multicast address, ignoring assignment: %s", lvalue, rvalue);
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0, "vxlan %s invalid multicast address, ignoring assignment: %s", lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
if (r > 0) {
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0,
|
||||
"%s= cannot be a multicast address, ignoring assignment: %s", lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (streq(lvalue, "Local"))
|
||||
v->local_type = _NETDEV_LOCAL_ADDRESS_TYPE_INVALID;
|
||||
v->group_family = f;
|
||||
} else {
|
||||
if (r > 0) {
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0, "vxlan %s cannot be a multicast address, ignoring assignment: %s", lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (streq(lvalue, "Remote"))
|
||||
v->remote_family = f;
|
||||
else
|
||||
v->local_family = f;
|
||||
}
|
||||
|
||||
*addr = buffer;
|
||||
*family = f;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -415,27 +369,9 @@ static int netdev_vxlan_verify(NetDev *netdev, const char *filename) {
|
||||
"%s: VXLAN both 'Group=' and 'Remote=' cannot be specified. Ignoring.",
|
||||
filename);
|
||||
|
||||
if (v->independent && v->local_type >= 0)
|
||||
return log_netdev_error_errno(netdev, SYNTHETIC_ERRNO(EINVAL),
|
||||
"The local address cannot be '%s' when Independent= is enabled, ignoring.",
|
||||
strna(netdev_local_address_type_to_string(v->local_type)));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int netdev_vxlan_is_ready_to_create(NetDev *netdev, Link *link) {
|
||||
VxLan *v;
|
||||
|
||||
assert(netdev);
|
||||
assert(link);
|
||||
|
||||
v = VXLAN(netdev);
|
||||
|
||||
assert(v);
|
||||
|
||||
return vxlan_get_local_address(v, link, NULL, NULL) >= 0;
|
||||
}
|
||||
|
||||
static void vxlan_init(NetDev *netdev) {
|
||||
VxLan *v;
|
||||
|
||||
@ -445,7 +381,6 @@ static void vxlan_init(NetDev *netdev) {
|
||||
|
||||
assert(v);
|
||||
|
||||
v->local_type = _NETDEV_LOCAL_ADDRESS_TYPE_INVALID;
|
||||
v->vni = VXLAN_VID_MAX + 1;
|
||||
v->df = _NETDEV_VXLAN_DF_INVALID;
|
||||
v->learning = true;
|
||||
@ -460,7 +395,6 @@ const NetDevVTable vxlan_vtable = {
|
||||
.sections = NETDEV_COMMON_SECTIONS "VXLAN\0",
|
||||
.fill_message_create = netdev_vxlan_fill_message_create,
|
||||
.create_type = NETDEV_CREATE_STACKED,
|
||||
.is_ready_to_create = netdev_vxlan_is_ready_to_create,
|
||||
.config_verify = netdev_vxlan_verify,
|
||||
.iftype = ARPHRD_ETHER,
|
||||
.generate_mac = true,
|
||||
|
||||
@ -6,7 +6,6 @@ typedef struct VxLan VxLan;
|
||||
#include <linux/if_link.h>
|
||||
|
||||
#include "in-addr-util.h"
|
||||
#include "netdev-util.h"
|
||||
#include "netdev.h"
|
||||
|
||||
#define VXLAN_VID_MAX (1u << 24) - 1
|
||||
@ -31,9 +30,8 @@ struct VxLan {
|
||||
|
||||
VxLanDF df;
|
||||
|
||||
NetDevLocalAddressType local_type;
|
||||
union in_addr_union local;
|
||||
union in_addr_union remote;
|
||||
union in_addr_union local;
|
||||
union in_addr_union group;
|
||||
|
||||
unsigned tos;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -134,31 +134,15 @@ struct bpf_insn;
|
||||
.off = OFF, \
|
||||
.imm = 0 })
|
||||
|
||||
/*
|
||||
* Atomic operations:
|
||||
*
|
||||
* BPF_ADD *(uint *) (dst_reg + off16) += src_reg
|
||||
* BPF_AND *(uint *) (dst_reg + off16) &= src_reg
|
||||
* BPF_OR *(uint *) (dst_reg + off16) |= src_reg
|
||||
* BPF_XOR *(uint *) (dst_reg + off16) ^= src_reg
|
||||
* BPF_ADD | BPF_FETCH src_reg = atomic_fetch_add(dst_reg + off16, src_reg);
|
||||
* BPF_AND | BPF_FETCH src_reg = atomic_fetch_and(dst_reg + off16, src_reg);
|
||||
* BPF_OR | BPF_FETCH src_reg = atomic_fetch_or(dst_reg + off16, src_reg);
|
||||
* BPF_XOR | BPF_FETCH src_reg = atomic_fetch_xor(dst_reg + off16, src_reg);
|
||||
* BPF_XCHG src_reg = atomic_xchg(dst_reg + off16, src_reg)
|
||||
* BPF_CMPXCHG r0 = atomic_cmpxchg(dst_reg + off16, r0, src_reg)
|
||||
*/
|
||||
/* Atomic memory add, *(uint *)(dst_reg + off16) += src_reg */
|
||||
|
||||
#define BPF_ATOMIC_OP(SIZE, OP, DST, SRC, OFF) \
|
||||
#define BPF_STX_XADD(SIZE, DST, SRC, OFF) \
|
||||
((struct bpf_insn) { \
|
||||
.code = BPF_STX | BPF_SIZE(SIZE) | BPF_ATOMIC, \
|
||||
.code = BPF_STX | BPF_SIZE(SIZE) | BPF_XADD, \
|
||||
.dst_reg = DST, \
|
||||
.src_reg = SRC, \
|
||||
.off = OFF, \
|
||||
.imm = OP })
|
||||
|
||||
/* Legacy alias */
|
||||
#define BPF_STX_XADD(SIZE, DST, SRC, OFF) BPF_ATOMIC_OP(SIZE, BPF_ADD, DST, SRC, OFF)
|
||||
.imm = 0 })
|
||||
|
||||
/* Memory store, *(uint *) (dst_reg + off16) = imm32 */
|
||||
|
||||
|
||||
@ -193,22 +193,8 @@ struct dm_name_list {
|
||||
__u32 next; /* offset to the next record from
|
||||
the _start_ of this */
|
||||
char name[0];
|
||||
|
||||
/*
|
||||
* The following members can be accessed by taking a pointer that
|
||||
* points immediately after the terminating zero character in "name"
|
||||
* and aligning this pointer to next 8-byte boundary.
|
||||
* Uuid is present if the flag DM_NAME_LIST_FLAG_HAS_UUID is set.
|
||||
*
|
||||
* __u32 event_nr;
|
||||
* __u32 flags;
|
||||
* char uuid[0];
|
||||
*/
|
||||
};
|
||||
|
||||
#define DM_NAME_LIST_FLAG_HAS_UUID 1
|
||||
#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
|
||||
|
||||
/*
|
||||
* Used to retrieve the target versions
|
||||
*/
|
||||
@ -288,7 +274,7 @@ enum {
|
||||
#define DM_VERSION_MAJOR 4
|
||||
#define DM_VERSION_MINOR 27
|
||||
#define DM_VERSION_PATCHLEVEL 0
|
||||
#define DM_VERSION_EXTRA "-ioctl (2021-03-22)"
|
||||
#define DM_VERSION_EXTRA "-ioctl (2020-10-01)"
|
||||
|
||||
/* Status bits */
|
||||
#define DM_READONLY_FLAG (1 << 0) /* In/Out */
|
||||
@ -376,10 +362,4 @@ enum {
|
||||
*/
|
||||
#define DM_INTERNAL_SUSPEND_FLAG (1 << 18) /* Out */
|
||||
|
||||
/*
|
||||
* If set, returns in the in buffer passed by UM, the raw table information
|
||||
* that would be measured by IMA subsystem on device state change.
|
||||
*/
|
||||
#define DM_IMA_MEASUREMENT_FLAG (1 << 19) /* In */
|
||||
|
||||
#endif /* _LINUX_DM_IOCTL_H */
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
#ifndef _UAPI_LINUX_ETHTOOL_H
|
||||
#define _UAPI_LINUX_ETHTOOL_H
|
||||
|
||||
#include <linux/const.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
@ -30,14 +30,6 @@
|
||||
* have the same layout for 32-bit and 64-bit userland.
|
||||
*/
|
||||
|
||||
/* Note on reserved space.
|
||||
* Reserved fields must not be accessed directly by user space because
|
||||
* they may be replaced by a different field in the future. They must
|
||||
* be initialized to zero before making the request, e.g. via memset
|
||||
* of the entire structure or implicitly by not being set in a structure
|
||||
* initializer.
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct ethtool_cmd - DEPRECATED, link control and status
|
||||
* This structure is DEPRECATED, please use struct ethtool_link_settings.
|
||||
@ -79,7 +71,6 @@
|
||||
* and other link features that the link partner advertised
|
||||
* through autonegotiation; 0 if unknown or not applicable.
|
||||
* Read-only.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* The link speed in Mbps is split between @speed and @speed_hi. Use
|
||||
* the ethtool_cmd_speed() and ethtool_cmd_speed_set() functions to
|
||||
@ -168,7 +159,6 @@ static inline __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep)
|
||||
* @bus_info: Device bus address. This should match the dev_name()
|
||||
* string for the underlying bus device, if there is one. May be
|
||||
* an empty string.
|
||||
* @reserved2: Reserved for future use; see the note on reserved space.
|
||||
* @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and
|
||||
* %ETHTOOL_SPFLAGS commands; also the number of strings in the
|
||||
* %ETH_SS_PRIV_FLAGS set
|
||||
@ -237,7 +227,7 @@ enum tunable_id {
|
||||
ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
|
||||
/*
|
||||
* Add your fresh new tunable attribute above and remember to update
|
||||
* tunable_strings[] in net/ethtool/common.c
|
||||
* tunable_strings[] in net/core/ethtool.c
|
||||
*/
|
||||
__ETHTOOL_TUNABLE_COUNT,
|
||||
};
|
||||
@ -301,7 +291,7 @@ enum phy_tunable_id {
|
||||
ETHTOOL_PHY_EDPD,
|
||||
/*
|
||||
* Add your fresh new phy tunable attribute above and remember to update
|
||||
* phy_tunable_strings[] in net/ethtool/common.c
|
||||
* phy_tunable_strings[] in net/core/ethtool.c
|
||||
*/
|
||||
__ETHTOOL_PHY_TUNABLE_COUNT,
|
||||
};
|
||||
@ -370,7 +360,6 @@ struct ethtool_eeprom {
|
||||
* @tx_lpi_timer: Time in microseconds the interface delays prior to asserting
|
||||
* its tx lpi (after reaching 'idle' state). Effective only when eee
|
||||
* was negotiated and tx_lpi_enabled was set.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
*/
|
||||
struct ethtool_eee {
|
||||
__u32 cmd;
|
||||
@ -389,7 +378,6 @@ struct ethtool_eee {
|
||||
* @cmd: %ETHTOOL_GMODULEINFO
|
||||
* @type: Standard the module information conforms to %ETH_MODULE_SFF_xxxx
|
||||
* @eeprom_len: Length of the eeprom
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* This structure is used to return the information to
|
||||
* properly size memory for a subsequent call to %ETHTOOL_GMODULEEEPROM.
|
||||
@ -595,7 +583,9 @@ struct ethtool_pauseparam {
|
||||
__u32 tx_pause;
|
||||
};
|
||||
|
||||
/* Link extended state */
|
||||
/**
|
||||
* enum ethtool_link_ext_state - link extended state
|
||||
*/
|
||||
enum ethtool_link_ext_state {
|
||||
ETHTOOL_LINK_EXT_STATE_AUTONEG,
|
||||
ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE,
|
||||
@ -607,10 +597,12 @@ enum ethtool_link_ext_state {
|
||||
ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
|
||||
ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
|
||||
ETHTOOL_LINK_EXT_STATE_OVERHEAT,
|
||||
ETHTOOL_LINK_EXT_STATE_MODULE,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_autoneg - more information in addition to
|
||||
* ETHTOOL_LINK_EXT_STATE_AUTONEG.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_autoneg {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED,
|
||||
@ -620,7 +612,9 @@ enum ethtool_link_ext_substate_autoneg {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_link_training - more information in addition to
|
||||
* ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_link_training {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 1,
|
||||
@ -629,7 +623,9 @@ enum ethtool_link_ext_substate_link_training {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_logical_mismatch - more information in addition
|
||||
* to ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_link_logical_mismatch {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 1,
|
||||
@ -639,26 +635,24 @@ enum ethtool_link_ext_substate_link_logical_mismatch {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_bad_signal_integrity - more information in
|
||||
* addition to ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_bad_signal_integrity {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */
|
||||
/**
|
||||
* enum ethtool_link_ext_substate_cable_issue - more information in
|
||||
* addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE.
|
||||
*/
|
||||
enum ethtool_link_ext_substate_cable_issue {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
|
||||
};
|
||||
|
||||
/* More information in addition to ETHTOOL_LINK_EXT_STATE_MODULE. */
|
||||
enum ethtool_link_ext_substate_module {
|
||||
ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
|
||||
};
|
||||
|
||||
#define ETH_GSTRING_LEN 32
|
||||
|
||||
/**
|
||||
@ -671,7 +665,6 @@ enum ethtool_link_ext_substate_module {
|
||||
* now deprecated
|
||||
* @ETH_SS_FEATURES: Device feature names
|
||||
* @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
|
||||
* @ETH_SS_TUNABLES: tunable names
|
||||
* @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
|
||||
* @ETH_SS_PHY_TUNABLES: PHY tunable names
|
||||
* @ETH_SS_LINK_MODES: link mode names
|
||||
@ -681,13 +674,6 @@ enum ethtool_link_ext_substate_module {
|
||||
* @ETH_SS_TS_TX_TYPES: timestamping Tx types
|
||||
* @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
|
||||
* @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
|
||||
* @ETH_SS_STATS_STD: standardized stats
|
||||
* @ETH_SS_STATS_ETH_PHY: names of IEEE 802.3 PHY statistics
|
||||
* @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics
|
||||
* @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics
|
||||
* @ETH_SS_STATS_RMON: names of RMON statistics
|
||||
*
|
||||
* @ETH_SS_COUNT: number of defined string sets
|
||||
*/
|
||||
enum ethtool_stringset {
|
||||
ETH_SS_TEST = 0,
|
||||
@ -706,39 +692,11 @@ enum ethtool_stringset {
|
||||
ETH_SS_TS_TX_TYPES,
|
||||
ETH_SS_TS_RX_FILTERS,
|
||||
ETH_SS_UDP_TUNNEL_TYPES,
|
||||
ETH_SS_STATS_STD,
|
||||
ETH_SS_STATS_ETH_PHY,
|
||||
ETH_SS_STATS_ETH_MAC,
|
||||
ETH_SS_STATS_ETH_CTRL,
|
||||
ETH_SS_STATS_RMON,
|
||||
|
||||
/* add new constants above here */
|
||||
ETH_SS_COUNT
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_module_power_mode_policy - plug-in module power mode policy
|
||||
* @ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH: Module is always in high power mode.
|
||||
* @ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO: Module is transitioned by the host
|
||||
* to high power mode when the first port using it is put administratively
|
||||
* up and to low power mode when the last port using it is put
|
||||
* administratively down.
|
||||
*/
|
||||
enum ethtool_module_power_mode_policy {
|
||||
ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
|
||||
ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ethtool_module_power_mode - plug-in module power mode
|
||||
* @ETHTOOL_MODULE_POWER_MODE_LOW: Module is in low power mode.
|
||||
* @ETHTOOL_MODULE_POWER_MODE_HIGH: Module is in high power mode.
|
||||
*/
|
||||
enum ethtool_module_power_mode {
|
||||
ETHTOOL_MODULE_POWER_MODE_LOW = 1,
|
||||
ETHTOOL_MODULE_POWER_MODE_HIGH,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_gstrings - string set for data tagging
|
||||
* @cmd: Command number = %ETHTOOL_GSTRINGS
|
||||
@ -761,7 +719,6 @@ struct ethtool_gstrings {
|
||||
/**
|
||||
* struct ethtool_sset_info - string set information
|
||||
* @cmd: Command number = %ETHTOOL_GSSET_INFO
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
* @sset_mask: On entry, a bitmask of string sets to query, with bits
|
||||
* numbered according to &enum ethtool_stringset. On return, a
|
||||
* bitmask of those string sets queried that are supported.
|
||||
@ -806,7 +763,6 @@ enum ethtool_test_flags {
|
||||
* @flags: A bitmask of flags from &enum ethtool_test_flags. Some
|
||||
* flags may be set by the user on entry; others may be set by
|
||||
* the driver on return.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
* @len: On return, the number of test results
|
||||
* @data: Array of test results
|
||||
*
|
||||
@ -1007,7 +963,6 @@ union ethtool_flow_union {
|
||||
* @vlan_etype: VLAN EtherType
|
||||
* @vlan_tci: VLAN tag control information
|
||||
* @data: user defined data
|
||||
* @padding: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* Note, @vlan_etype, @vlan_tci, and @data are only valid if %FLOW_EXT
|
||||
* is set in &struct ethtool_rx_flow_spec @flow_type.
|
||||
@ -1183,8 +1138,7 @@ struct ethtool_rxfh_indir {
|
||||
* hardware hash key.
|
||||
* @hfunc: Defines the current RSS hash function used by HW (or to be set to).
|
||||
* Valid values are one of the %ETH_RSS_HASH_*.
|
||||
* @rsvd8: Reserved for future use; see the note on reserved space.
|
||||
* @rsvd32: Reserved for future use; see the note on reserved space.
|
||||
* @rsvd: Reserved for future extensions.
|
||||
* @rss_config: RX ring/queue index for each hash value i.e., indirection table
|
||||
* of @indir_size __u32 elements, followed by hash key of @key_size
|
||||
* bytes.
|
||||
@ -1352,9 +1306,7 @@ struct ethtool_sfeatures {
|
||||
* @so_timestamping: bit mask of the sum of the supported SO_TIMESTAMPING flags
|
||||
* @phc_index: device index of the associated PHC, or -1 if there is none
|
||||
* @tx_types: bit mask of the supported hwtstamp_tx_types enumeration values
|
||||
* @tx_reserved: Reserved for future use; see the note on reserved space.
|
||||
* @rx_filters: bit mask of the supported hwtstamp_rx_filters enumeration values
|
||||
* @rx_reserved: Reserved for future use; see the note on reserved space.
|
||||
*
|
||||
* The bits in the 'tx_types' and 'rx_filters' fields correspond to
|
||||
* the 'hwtstamp_tx_types' and 'hwtstamp_rx_filters' enumeration values,
|
||||
@ -1428,33 +1380,15 @@ struct ethtool_per_queue_op {
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ethtool_fecparam - Ethernet Forward Error Correction parameters
|
||||
* struct ethtool_fecparam - Ethernet forward error correction(fec) parameters
|
||||
* @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM
|
||||
* @active_fec: FEC mode which is active on the port, single bit set, GET only.
|
||||
* @fec: Bitmask of configured FEC modes.
|
||||
* @reserved: Reserved for future extensions, ignore on GET, write 0 for SET.
|
||||
* @active_fec: FEC mode which is active on porte
|
||||
* @fec: Bitmask of supported/configured FEC modes
|
||||
* @rsvd: Reserved for future extensions. i.e FEC bypass feature.
|
||||
*
|
||||
* Note that @reserved was never validated on input and ethtool user space
|
||||
* left it uninitialized when calling SET. Hence going forward it can only be
|
||||
* used to return a value to userspace with GET.
|
||||
* Drivers should reject a non-zero setting of @autoneg when
|
||||
* autoneogotiation is disabled (or not supported) for the link.
|
||||
*
|
||||
* FEC modes supported by the device can be read via %ETHTOOL_GLINKSETTINGS.
|
||||
* FEC settings are configured by link autonegotiation whenever it's enabled.
|
||||
* With autoneg on %ETHTOOL_GFECPARAM can be used to read the current mode.
|
||||
*
|
||||
* When autoneg is disabled %ETHTOOL_SFECPARAM controls the FEC settings.
|
||||
* It is recommended that drivers only accept a single bit set in @fec.
|
||||
* When multiple bits are set in @fec drivers may pick mode in an implementation
|
||||
* dependent way. Drivers should reject mixing %ETHTOOL_FEC_AUTO_BIT with other
|
||||
* FEC modes, because it's unclear whether in this case other modes constrain
|
||||
* AUTO or are independent choices.
|
||||
* Drivers must reject SET requests if they support none of the requested modes.
|
||||
*
|
||||
* If device does not support FEC drivers may use %ETHTOOL_FEC_NONE instead
|
||||
* of returning %EOPNOTSUPP from %ETHTOOL_GFECPARAM.
|
||||
*
|
||||
* See enum ethtool_fec_config_bits for definition of valid bits for both
|
||||
* @fec and @active_fec.
|
||||
*/
|
||||
struct ethtool_fecparam {
|
||||
__u32 cmd;
|
||||
@ -1466,16 +1400,11 @@ struct ethtool_fecparam {
|
||||
|
||||
/**
|
||||
* enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration
|
||||
* @ETHTOOL_FEC_NONE_BIT: FEC mode configuration is not supported. Should not
|
||||
* be used together with other bits. GET only.
|
||||
* @ETHTOOL_FEC_AUTO_BIT: Select default/best FEC mode automatically, usually
|
||||
* based link mode and SFP parameters read from module's
|
||||
* EEPROM. This bit does _not_ mean autonegotiation.
|
||||
* @ETHTOOL_FEC_OFF_BIT: No FEC Mode
|
||||
* @ETHTOOL_FEC_RS_BIT: Reed-Solomon FEC Mode
|
||||
* @ETHTOOL_FEC_BASER_BIT: Base-R/Reed-Solomon FEC Mode
|
||||
* @ETHTOOL_FEC_LLRS_BIT: Low Latency Reed Solomon FEC Mode (25G/50G Ethernet
|
||||
* Consortium)
|
||||
* @ETHTOOL_FEC_NONE: FEC mode configuration is not supported
|
||||
* @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver
|
||||
* @ETHTOOL_FEC_OFF: No FEC Mode
|
||||
* @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode
|
||||
* @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode
|
||||
*/
|
||||
enum ethtool_fec_config_bits {
|
||||
ETHTOOL_FEC_NONE_BIT,
|
||||
@ -2033,11 +1962,6 @@ enum ethtool_reset_flags {
|
||||
* autonegotiation; 0 if unknown or not applicable. Read-only.
|
||||
* @transceiver: Used to distinguish different possible PHY types,
|
||||
* reported consistently by PHYLIB. Read-only.
|
||||
* @master_slave_cfg: Master/slave port mode.
|
||||
* @master_slave_state: Master/slave port state.
|
||||
* @reserved: Reserved for future use; see the note on reserved space.
|
||||
* @reserved1: Reserved for future use; see the note on reserved space.
|
||||
* @link_mode_masks: Variable length bitmaps.
|
||||
*
|
||||
* If autonegotiation is disabled, the speed and @duplex represent the
|
||||
* fixed link mode and are writable if the driver supports multiple
|
||||
|
||||
@ -1,8 +0,0 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[NetDev]
|
||||
Name=vxlan-slaac
|
||||
Kind=vxlan
|
||||
|
||||
[VXLAN]
|
||||
VNI=4831584
|
||||
Local=slaac
|
||||
@ -1,7 +0,0 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Match]
|
||||
Name=vxlan-slaac
|
||||
|
||||
[Network]
|
||||
IPv6AcceptRA=no
|
||||
LinkLocalAddressing=yes
|
||||
@ -1,10 +0,0 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Match]
|
||||
Name=veth99
|
||||
|
||||
[Network]
|
||||
IPv6AcceptRA=yes
|
||||
VXLAN=vxlan-slaac
|
||||
|
||||
[IPv6AcceptRA]
|
||||
PrefixAllowList=2002:da8:1::/64
|
||||
@ -934,7 +934,6 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
||||
'vtitun98',
|
||||
'vtitun99',
|
||||
'vxcan99',
|
||||
'vxlan-slaac',
|
||||
'vxlan97',
|
||||
'vxlan98',
|
||||
'vxlan99',
|
||||
@ -1030,9 +1029,6 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
||||
'25-vxcan.netdev',
|
||||
'25-vxlan-independent.netdev',
|
||||
'25-vxlan-ipv6.netdev',
|
||||
'25-vxlan-local-slaac.netdev',
|
||||
'25-vxlan-local-slaac.network',
|
||||
'25-vxlan-veth99.network',
|
||||
'25-vxlan.netdev',
|
||||
'25-wireguard-23-peers.netdev',
|
||||
'25-wireguard-23-peers.network',
|
||||
@ -1829,16 +1825,13 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
||||
self.assertRegex(output, 'encap fou encap-sport auto encap-dport 55556')
|
||||
|
||||
def test_vxlan(self):
|
||||
copy_unit_to_networkd_unit_path('11-dummy.netdev', 'vxlan-test1.network',
|
||||
'25-vxlan.netdev', 'vxlan.network',
|
||||
copy_unit_to_networkd_unit_path('25-vxlan.netdev', 'vxlan.network',
|
||||
'25-vxlan-ipv6.netdev', 'vxlan-ipv6.network',
|
||||
'25-vxlan-independent.netdev', 'netdev-link-local-addressing-yes.network',
|
||||
'25-veth.netdev', '25-vxlan-veth99.network', 'ipv6-prefix.network',
|
||||
'25-vxlan-local-slaac.netdev', '25-vxlan-local-slaac.network')
|
||||
'11-dummy.netdev', 'vxlan-test1.network')
|
||||
start_networkd()
|
||||
|
||||
self.wait_online(['test1:degraded', 'veth99:routable', 'veth-peer:degraded',
|
||||
'vxlan99:degraded', 'vxlan98:degraded', 'vxlan97:degraded', 'vxlan-slaac:degraded'])
|
||||
self.wait_online(['test1:degraded', 'vxlan99:degraded', 'vxlan98:degraded', 'vxlan97:degraded'])
|
||||
|
||||
output = check_output('ip -d link show vxlan99')
|
||||
print(output)
|
||||
@ -1871,14 +1864,6 @@ class NetworkdNetDevTests(unittest.TestCase, Utilities):
|
||||
self.assertIn('00:00:00:00:00:00 dst fe80::27c:16ff:fec0:6c74 via test1 self permanent', output)
|
||||
self.assertIn('00:00:00:00:00:00 dst fe80::2a2:e4ff:fef9:2269 via test1 self permanent', output)
|
||||
|
||||
output = check_output('ip -d link show vxlan-slaac')
|
||||
print(output)
|
||||
self.assertIn('vxlan id 4831584 local 2002:da8:1:0:1034:56ff:fe78:9abc dev veth99', output)
|
||||
|
||||
output = check_output('ip -6 address show veth99')
|
||||
print(output)
|
||||
self.assertIn('inet6 2002:da8:1:0:1034:56ff:fe78:9abc/64 scope global dynamic', output)
|
||||
|
||||
def test_macsec(self):
|
||||
copy_unit_to_networkd_unit_path('25-macsec.netdev', '25-macsec.network', '25-macsec.key',
|
||||
'macsec.network', '12-dummy.netdev')
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user