Merge branch 'iproute2-master' into iproute2-next
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
commit
3a7246dce4
|
|
@ -181,13 +181,10 @@ int print_fdb(struct nlmsghdr *n, void *arg)
|
||||||
"mac", "%s ", lladdr);
|
"mac", "%s ", lladdr);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!filter_index && r->ndm_ifindex) {
|
if (!filter_index && r->ndm_ifindex)
|
||||||
if (!is_json_context())
|
|
||||||
fprintf(fp, "dev ");
|
|
||||||
print_color_string(PRINT_ANY, COLOR_IFNAME,
|
print_color_string(PRINT_ANY, COLOR_IFNAME,
|
||||||
"ifname", "dev %s ",
|
"ifname", "dev %s ",
|
||||||
ll_index_to_name(r->ndm_ifindex));
|
ll_index_to_name(r->ndm_ifindex));
|
||||||
}
|
|
||||||
|
|
||||||
if (tb[NDA_DST]) {
|
if (tb[NDA_DST]) {
|
||||||
int family = AF_INET;
|
int family = AF_INET;
|
||||||
|
|
|
||||||
|
|
@ -436,4 +436,4 @@ check_cap
|
||||||
|
|
||||||
echo >> $CONFIG
|
echo >> $CONFIG
|
||||||
echo "%.o: %.c" >> $CONFIG
|
echo "%.o: %.c" >> $CONFIG
|
||||||
echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<' >> $CONFIG
|
echo ' $(QUIET_CC)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c -o $@ $<' >> $CONFIG
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,6 @@
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "genl_utils.h"
|
#include "genl_utils.h"
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ enum bpf_cmd {
|
||||||
BPF_BTF_LOAD,
|
BPF_BTF_LOAD,
|
||||||
BPF_BTF_GET_FD_BY_ID,
|
BPF_BTF_GET_FD_BY_ID,
|
||||||
BPF_TASK_FD_QUERY,
|
BPF_TASK_FD_QUERY,
|
||||||
|
BPF_MAP_LOOKUP_AND_DELETE_ELEM,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum bpf_map_type {
|
enum bpf_map_type {
|
||||||
|
|
@ -127,6 +128,9 @@ enum bpf_map_type {
|
||||||
BPF_MAP_TYPE_SOCKHASH,
|
BPF_MAP_TYPE_SOCKHASH,
|
||||||
BPF_MAP_TYPE_CGROUP_STORAGE,
|
BPF_MAP_TYPE_CGROUP_STORAGE,
|
||||||
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
|
BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,
|
||||||
|
BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,
|
||||||
|
BPF_MAP_TYPE_QUEUE,
|
||||||
|
BPF_MAP_TYPE_STACK,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum bpf_prog_type {
|
enum bpf_prog_type {
|
||||||
|
|
@ -461,6 +465,28 @@ union bpf_attr {
|
||||||
* Return
|
* Return
|
||||||
* 0 on success, or a negative error in case of failure.
|
* 0 on success, or a negative error in case of failure.
|
||||||
*
|
*
|
||||||
|
* int bpf_map_push_elem(struct bpf_map *map, const void *value, u64 flags)
|
||||||
|
* Description
|
||||||
|
* Push an element *value* in *map*. *flags* is one of:
|
||||||
|
*
|
||||||
|
* **BPF_EXIST**
|
||||||
|
* If the queue/stack is full, the oldest element is removed to
|
||||||
|
* make room for this.
|
||||||
|
* Return
|
||||||
|
* 0 on success, or a negative error in case of failure.
|
||||||
|
*
|
||||||
|
* int bpf_map_pop_elem(struct bpf_map *map, void *value)
|
||||||
|
* Description
|
||||||
|
* Pop an element from *map*.
|
||||||
|
* Return
|
||||||
|
* 0 on success, or a negative error in case of failure.
|
||||||
|
*
|
||||||
|
* int bpf_map_peek_elem(struct bpf_map *map, void *value)
|
||||||
|
* Description
|
||||||
|
* Get an element from *map* without removing it.
|
||||||
|
* Return
|
||||||
|
* 0 on success, or a negative error in case of failure.
|
||||||
|
*
|
||||||
* int bpf_probe_read(void *dst, u32 size, const void *src)
|
* int bpf_probe_read(void *dst, u32 size, const void *src)
|
||||||
* Description
|
* Description
|
||||||
* For tracing programs, safely attempt to read *size* bytes from
|
* For tracing programs, safely attempt to read *size* bytes from
|
||||||
|
|
@ -1432,7 +1458,7 @@ union bpf_attr {
|
||||||
* Return
|
* Return
|
||||||
* 0 on success, or a negative error in case of failure.
|
* 0 on success, or a negative error in case of failure.
|
||||||
*
|
*
|
||||||
* int bpf_skb_adjust_room(struct sk_buff *skb, u32 len_diff, u32 mode, u64 flags)
|
* int bpf_skb_adjust_room(struct sk_buff *skb, s32 len_diff, u32 mode, u64 flags)
|
||||||
* Description
|
* Description
|
||||||
* Grow or shrink the room for data in the packet associated to
|
* Grow or shrink the room for data in the packet associated to
|
||||||
* *skb* by *len_diff*, and according to the selected *mode*.
|
* *skb* by *len_diff*, and according to the selected *mode*.
|
||||||
|
|
@ -2143,6 +2169,94 @@ union bpf_attr {
|
||||||
* request in the skb.
|
* request in the skb.
|
||||||
* Return
|
* Return
|
||||||
* 0 on success, or a negative error in case of failure.
|
* 0 on success, or a negative error in case of failure.
|
||||||
|
*
|
||||||
|
* struct bpf_sock *bpf_sk_lookup_tcp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u32 netns, u64 flags)
|
||||||
|
* Description
|
||||||
|
* Look for TCP socket matching *tuple*, optionally in a child
|
||||||
|
* network namespace *netns*. The return value must be checked,
|
||||||
|
* and if non-NULL, released via **bpf_sk_release**\ ().
|
||||||
|
*
|
||||||
|
* The *ctx* should point to the context of the program, such as
|
||||||
|
* the skb or socket (depending on the hook in use). This is used
|
||||||
|
* to determine the base network namespace for the lookup.
|
||||||
|
*
|
||||||
|
* *tuple_size* must be one of:
|
||||||
|
*
|
||||||
|
* **sizeof**\ (*tuple*\ **->ipv4**)
|
||||||
|
* Look for an IPv4 socket.
|
||||||
|
* **sizeof**\ (*tuple*\ **->ipv6**)
|
||||||
|
* Look for an IPv6 socket.
|
||||||
|
*
|
||||||
|
* If the *netns* is zero, then the socket lookup table in the
|
||||||
|
* netns associated with the *ctx* will be used. For the TC hooks,
|
||||||
|
* this in the netns of the device in the skb. For socket hooks,
|
||||||
|
* this in the netns of the socket. If *netns* is non-zero, then
|
||||||
|
* it specifies the ID of the netns relative to the netns
|
||||||
|
* associated with the *ctx*.
|
||||||
|
*
|
||||||
|
* All values for *flags* are reserved for future usage, and must
|
||||||
|
* be left at zero.
|
||||||
|
*
|
||||||
|
* This helper is available only if the kernel was compiled with
|
||||||
|
* **CONFIG_NET** configuration option.
|
||||||
|
* Return
|
||||||
|
* Pointer to *struct bpf_sock*, or NULL in case of failure.
|
||||||
|
*
|
||||||
|
* struct bpf_sock *bpf_sk_lookup_udp(void *ctx, struct bpf_sock_tuple *tuple, u32 tuple_size, u32 netns, u64 flags)
|
||||||
|
* Description
|
||||||
|
* Look for UDP socket matching *tuple*, optionally in a child
|
||||||
|
* network namespace *netns*. The return value must be checked,
|
||||||
|
* and if non-NULL, released via **bpf_sk_release**\ ().
|
||||||
|
*
|
||||||
|
* The *ctx* should point to the context of the program, such as
|
||||||
|
* the skb or socket (depending on the hook in use). This is used
|
||||||
|
* to determine the base network namespace for the lookup.
|
||||||
|
*
|
||||||
|
* *tuple_size* must be one of:
|
||||||
|
*
|
||||||
|
* **sizeof**\ (*tuple*\ **->ipv4**)
|
||||||
|
* Look for an IPv4 socket.
|
||||||
|
* **sizeof**\ (*tuple*\ **->ipv6**)
|
||||||
|
* Look for an IPv6 socket.
|
||||||
|
*
|
||||||
|
* If the *netns* is zero, then the socket lookup table in the
|
||||||
|
* netns associated with the *ctx* will be used. For the TC hooks,
|
||||||
|
* this in the netns of the device in the skb. For socket hooks,
|
||||||
|
* this in the netns of the socket. If *netns* is non-zero, then
|
||||||
|
* it specifies the ID of the netns relative to the netns
|
||||||
|
* associated with the *ctx*.
|
||||||
|
*
|
||||||
|
* All values for *flags* are reserved for future usage, and must
|
||||||
|
* be left at zero.
|
||||||
|
*
|
||||||
|
* This helper is available only if the kernel was compiled with
|
||||||
|
* **CONFIG_NET** configuration option.
|
||||||
|
* Return
|
||||||
|
* Pointer to *struct bpf_sock*, or NULL in case of failure.
|
||||||
|
*
|
||||||
|
* int bpf_sk_release(struct bpf_sock *sk)
|
||||||
|
* Description
|
||||||
|
* Release the reference held by *sock*. *sock* must be a non-NULL
|
||||||
|
* pointer that was returned from bpf_sk_lookup_xxx\ ().
|
||||||
|
* Return
|
||||||
|
* 0 on success, or a negative error in case of failure.
|
||||||
|
*
|
||||||
|
* int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
|
||||||
|
* Description
|
||||||
|
* For socket policies, insert *len* bytes into msg at offset
|
||||||
|
* *start*.
|
||||||
|
*
|
||||||
|
* If a program of type **BPF_PROG_TYPE_SK_MSG** is run on a
|
||||||
|
* *msg* it may want to insert metadata or options into the msg.
|
||||||
|
* This can later be read and used by any of the lower layer BPF
|
||||||
|
* hooks.
|
||||||
|
*
|
||||||
|
* This helper may fail if under memory pressure (a malloc
|
||||||
|
* fails) in these cases BPF programs will get an appropriate
|
||||||
|
* error and BPF programs will need to handle them.
|
||||||
|
*
|
||||||
|
* Return
|
||||||
|
* 0 on success, or a negative error in case of failure.
|
||||||
*/
|
*/
|
||||||
#define __BPF_FUNC_MAPPER(FN) \
|
#define __BPF_FUNC_MAPPER(FN) \
|
||||||
FN(unspec), \
|
FN(unspec), \
|
||||||
|
|
@ -2228,7 +2342,14 @@ union bpf_attr {
|
||||||
FN(get_current_cgroup_id), \
|
FN(get_current_cgroup_id), \
|
||||||
FN(get_local_storage), \
|
FN(get_local_storage), \
|
||||||
FN(sk_select_reuseport), \
|
FN(sk_select_reuseport), \
|
||||||
FN(skb_ancestor_cgroup_id),
|
FN(skb_ancestor_cgroup_id), \
|
||||||
|
FN(sk_lookup_tcp), \
|
||||||
|
FN(sk_lookup_udp), \
|
||||||
|
FN(sk_release), \
|
||||||
|
FN(map_push_elem), \
|
||||||
|
FN(map_pop_elem), \
|
||||||
|
FN(map_peek_elem), \
|
||||||
|
FN(msg_push_data),
|
||||||
|
|
||||||
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
/* integer value in 'imm' field of BPF_CALL instruction selects which helper
|
||||||
* function eBPF program intends to call
|
* function eBPF program intends to call
|
||||||
|
|
@ -2398,6 +2519,23 @@ struct bpf_sock {
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct bpf_sock_tuple {
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
__be32 saddr;
|
||||||
|
__be32 daddr;
|
||||||
|
__be16 sport;
|
||||||
|
__be16 dport;
|
||||||
|
} ipv4;
|
||||||
|
struct {
|
||||||
|
__be32 saddr[4];
|
||||||
|
__be32 daddr[4];
|
||||||
|
__be16 sport;
|
||||||
|
__be16 dport;
|
||||||
|
} ipv6;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
#define XDP_PACKET_HEADROOM 256
|
#define XDP_PACKET_HEADROOM 256
|
||||||
|
|
||||||
/* User return codes for XDP prog type.
|
/* User return codes for XDP prog type.
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@
|
||||||
#define EM_TILEPRO 188 /* Tilera TILEPro */
|
#define EM_TILEPRO 188 /* Tilera TILEPro */
|
||||||
#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */
|
#define EM_MICROBLAZE 189 /* Xilinx MicroBlaze */
|
||||||
#define EM_TILEGX 191 /* Tilera TILE-Gx */
|
#define EM_TILEGX 191 /* Tilera TILE-Gx */
|
||||||
|
#define EM_RISCV 243 /* RISC-V */
|
||||||
#define EM_BPF 247 /* Linux BPF - in-kernel virtual machine */
|
#define EM_BPF 247 /* Linux BPF - in-kernel virtual machine */
|
||||||
#define EM_FRV 0x5441 /* Fujitsu FR-V */
|
#define EM_FRV 0x5441 /* Fujitsu FR-V */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -285,6 +285,7 @@ enum {
|
||||||
IFLA_BR_MCAST_STATS_ENABLED,
|
IFLA_BR_MCAST_STATS_ENABLED,
|
||||||
IFLA_BR_MCAST_IGMP_VERSION,
|
IFLA_BR_MCAST_IGMP_VERSION,
|
||||||
IFLA_BR_MCAST_MLD_VERSION,
|
IFLA_BR_MCAST_MLD_VERSION,
|
||||||
|
IFLA_BR_VLAN_STATS_PER_PORT,
|
||||||
__IFLA_BR_MAX,
|
__IFLA_BR_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@
|
||||||
#define HPFS_SUPER_MAGIC 0xf995e849
|
#define HPFS_SUPER_MAGIC 0xf995e849
|
||||||
#define ISOFS_SUPER_MAGIC 0x9660
|
#define ISOFS_SUPER_MAGIC 0x9660
|
||||||
#define JFFS2_SUPER_MAGIC 0x72b6
|
#define JFFS2_SUPER_MAGIC 0x72b6
|
||||||
|
#define XFS_SUPER_MAGIC 0x58465342 /* "XFSB" */
|
||||||
#define PSTOREFS_MAGIC 0x6165676C
|
#define PSTOREFS_MAGIC 0x6165676C
|
||||||
#define EFIVARFS_MAGIC 0xde5e81e4
|
#define EFIVARFS_MAGIC 0xde5e81e4
|
||||||
#define HOSTFS_SUPER_MAGIC 0x00c0ffee
|
#define HOSTFS_SUPER_MAGIC 0x00c0ffee
|
||||||
|
|
|
||||||
|
|
@ -153,6 +153,7 @@ enum nlmsgerr_attrs {
|
||||||
#define NETLINK_LIST_MEMBERSHIPS 9
|
#define NETLINK_LIST_MEMBERSHIPS 9
|
||||||
#define NETLINK_CAP_ACK 10
|
#define NETLINK_CAP_ACK 10
|
||||||
#define NETLINK_EXT_ACK 11
|
#define NETLINK_EXT_ACK 11
|
||||||
|
#define NETLINK_DUMP_STRICT_CHK 12
|
||||||
|
|
||||||
struct nl_pktinfo {
|
struct nl_pktinfo {
|
||||||
__u32 group;
|
__u32 group;
|
||||||
|
|
|
||||||
|
|
@ -301,6 +301,7 @@ enum sctp_sinfo_flags {
|
||||||
SCTP_SACK_IMMEDIATELY = (1 << 3), /* SACK should be sent without delay. */
|
SCTP_SACK_IMMEDIATELY = (1 << 3), /* SACK should be sent without delay. */
|
||||||
/* 2 bits here have been used by SCTP_PR_SCTP_MASK */
|
/* 2 bits here have been used by SCTP_PR_SCTP_MASK */
|
||||||
SCTP_SENDALL = (1 << 6),
|
SCTP_SENDALL = (1 << 6),
|
||||||
|
SCTP_PR_SCTP_ALL = (1 << 7),
|
||||||
SCTP_NOTIFICATION = MSG_NOTIFICATION, /* Next message is not user msg but notification. */
|
SCTP_NOTIFICATION = MSG_NOTIFICATION, /* Next message is not user msg but notification. */
|
||||||
SCTP_EOF = MSG_FIN, /* Initiate graceful shutdown process. */
|
SCTP_EOF = MSG_FIN, /* Initiate graceful shutdown process. */
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,10 @@
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_LIBBSD
|
||||||
|
#include <bsd/string.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "libnetlink.h"
|
#include "libnetlink.h"
|
||||||
#include "ll_map.h"
|
#include "ll_map.h"
|
||||||
#include "rtm_map.h"
|
#include "rtm_map.h"
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,6 @@
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <linux/mpls.h>
|
#include <linux/mpls.h>
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,6 @@
|
||||||
#include <sys/syscall.h>
|
#include <sys/syscall.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <sched.h>
|
#include <sched.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <linux/ila.h>
|
#include <linux/ila.h>
|
||||||
#include <linux/lwtunnel.h>
|
#include <linux/lwtunnel.h>
|
||||||
#include <linux/mpls_iptunnel.h>
|
#include <linux/mpls_iptunnel.h>
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
|
||||||
|
|
@ -24,9 +24,6 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "xfrm.h"
|
#include "xfrm.h"
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
|
||||||
3
lib/fs.c
3
lib/fs.c
|
|
@ -20,9 +20,6 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,9 +18,6 @@
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "rt_names.h"
|
#include "rt_names.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ devlink \- Devlink tool
|
||||||
.in +8
|
.in +8
|
||||||
.ti -8
|
.ti -8
|
||||||
.B devlink
|
.B devlink
|
||||||
.RI "[ " OPTIONS " ] { " dev | port | monitor | sb | resource " } { " COMMAND " | "
|
.RI "[ " OPTIONS " ] { " dev | port | monitor | sb | resource | region " } { " COMMAND " | "
|
||||||
.BR help " }"
|
.BR help " }"
|
||||||
.sp
|
.sp
|
||||||
|
|
||||||
|
|
@ -74,6 +74,10 @@ Turn on verbose output.
|
||||||
.B resource
|
.B resource
|
||||||
- devlink device resource configuration.
|
- devlink device resource configuration.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
.B region
|
||||||
|
- devlink address region access
|
||||||
|
|
||||||
.SS
|
.SS
|
||||||
.I COMMAND
|
.I COMMAND
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,13 @@ an uuid of the socket
|
||||||
Show socket memory usage. The output format is:
|
Show socket memory usage. The output format is:
|
||||||
.RS
|
.RS
|
||||||
.P
|
.P
|
||||||
skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,f<fwd_alloc>,w<wmem_queued>,o<opt_mem>,bl<back_log>)
|
skmem:(r<rmem_alloc>,rb<rcv_buf>,t<wmem_alloc>,tb<snd_buf>,f<fwd_alloc>,
|
||||||
|
.br
|
||||||
|
.RS
|
||||||
|
.RS
|
||||||
|
w<wmem_queued>,o<opt_mem>,bl<back_log>)
|
||||||
|
.RE
|
||||||
|
.RE
|
||||||
.P
|
.P
|
||||||
.TP
|
.TP
|
||||||
.B <rmem_alloc>
|
.B <rmem_alloc>
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,8 @@ While SKB Priority Queue is agnostic to how
|
||||||
.B skb->priority
|
.B skb->priority
|
||||||
is assigned. A typical use case is to copy
|
is assigned. A typical use case is to copy
|
||||||
the 6-bit DS field of IPv4 and IPv6 packets using
|
the 6-bit DS field of IPv4 and IPv6 packets using
|
||||||
.BR tc-skbedit (8)
|
.BR tc-skbedit (8).
|
||||||
. If
|
If
|
||||||
.B skb->priority
|
.B skb->priority
|
||||||
is greater or equal to 64, the priority is assumed to be 63.
|
is greater or equal to 64, the priority is assumed to be 63.
|
||||||
Priorities less than 64 are taken at face value.
|
Priorities less than 64 are taken at face value.
|
||||||
|
|
|
||||||
|
|
@ -16,16 +16,16 @@ ss: $(SSOBJ)
|
||||||
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
$(QUIET_LINK)$(CC) $^ $(LDFLAGS) $(LDLIBS) -o $@
|
||||||
|
|
||||||
nstat: nstat.c
|
nstat: nstat.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o nstat nstat.c $(LDLIBS) -lm
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o nstat nstat.c $(LDLIBS) -lm
|
||||||
|
|
||||||
ifstat: ifstat.c
|
ifstat: ifstat.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o ifstat ifstat.c $(LDLIBS) -lm
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o ifstat ifstat.c $(LDLIBS) -lm
|
||||||
|
|
||||||
rtacct: rtacct.c
|
rtacct: rtacct.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o rtacct rtacct.c $(LDLIBS) -lm
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o rtacct rtacct.c $(LDLIBS) -lm
|
||||||
|
|
||||||
arpd: arpd.c
|
arpd: arpd.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) -I$(DBM_INCLUDE) $(LDFLAGS) -o arpd arpd.c $(LDLIBS) -ldb
|
$(QUIET_CC)$(CC) $(CFLAGS) -I$(DBM_INCLUDE) $(CPPFLAGS) $(LDFLAGS) -o arpd arpd.c $(LDLIBS) -ldb
|
||||||
|
|
||||||
ssfilter.c: ssfilter.y
|
ssfilter.c: ssfilter.y
|
||||||
$(QUIET_YACC)bison ssfilter.y -o ssfilter.c
|
$(QUIET_YACC)bison ssfilter.y -o ssfilter.c
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,6 @@
|
||||||
#include <sys/sysmacros.h>
|
#include <sys/sysmacros.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
|
|
||||||
|
|
@ -16,13 +16,17 @@ static int res_help(struct rd *rd)
|
||||||
{
|
{
|
||||||
pr_out("Usage: %s resource\n", rd->filename);
|
pr_out("Usage: %s resource\n", rd->filename);
|
||||||
pr_out(" resource show [DEV]\n");
|
pr_out(" resource show [DEV]\n");
|
||||||
pr_out(" resource show [qp|cm_id]\n");
|
pr_out(" resource show [qp|cm_id|pd|mr|cq]\n");
|
||||||
pr_out(" resource show qp link [DEV/PORT]\n");
|
pr_out(" resource show qp link [DEV/PORT]\n");
|
||||||
pr_out(" resource show qp link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");
|
pr_out(" resource show qp link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");
|
||||||
pr_out(" resource show cm_id link [DEV/PORT]\n");
|
pr_out(" resource show cm_id link [DEV/PORT]\n");
|
||||||
pr_out(" resource show cm_id link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");
|
pr_out(" resource show cm_id link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");
|
||||||
pr_out(" resource show cq link [DEV/PORT]\n");
|
pr_out(" resource show cq link [DEV/PORT]\n");
|
||||||
pr_out(" resource show cq link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");
|
pr_out(" resource show cq link [DEV/PORT] [FILTER-NAME FILTER-VALUE]\n");
|
||||||
|
pr_out(" resource show pd dev [DEV]\n");
|
||||||
|
pr_out(" resource show pd dev [DEV] [FILTER-NAME FILTER-VALUE]\n");
|
||||||
|
pr_out(" resource show mr dev [DEV]\n");
|
||||||
|
pr_out(" resource show mr dev [DEV] [FILTER-NAME FILTER-VALUE]\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ CFLAGS += -DYY_NO_INPUT
|
||||||
MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
|
MODDESTDIR := $(DESTDIR)$(LIBDIR)/tc
|
||||||
|
|
||||||
%.so: %.c
|
%.so: %.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic $< -o $@
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic $< -o $@
|
||||||
|
|
||||||
|
|
||||||
all: tc $(TCSO)
|
all: tc $(TCSO)
|
||||||
|
|
@ -158,13 +158,13 @@ clean:
|
||||||
rm -f emp_ematch.yacc.*
|
rm -f emp_ematch.yacc.*
|
||||||
|
|
||||||
q_atm.so: q_atm.c
|
q_atm.so: q_atm.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o q_atm.so q_atm.c -latm
|
||||||
|
|
||||||
m_xt.so: m_xt.c
|
m_xt.so: m_xt.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o m_xt.so m_xt.c $$($(PKG_CONFIG) xtables --cflags --libs)
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o m_xt.so m_xt.c $$($(PKG_CONFIG) xtables --cflags --libs)
|
||||||
|
|
||||||
m_xt_old.so: m_xt_old.c
|
m_xt_old.so: m_xt_old.c
|
||||||
$(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -shared -fpic -o m_xt_old.so m_xt_old.c $$($(PKG_CONFIG) xtables --cflags --libs)
|
$(QUIET_CC)$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -shared -fpic -o m_xt_old.so m_xt_old.c $$($(PKG_CONFIG) xtables --cflags --libs)
|
||||||
|
|
||||||
em_ipset.o: CFLAGS += $$($(PKG_CONFIG) xtables --cflags)
|
em_ipset.o: CFLAGS += $$($(PKG_CONFIG) xtables --cflags)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,6 @@
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1147,13 +1147,9 @@ static int u32_parse_opt(struct filter_util *qu, char *handle,
|
||||||
terminal_ok++;
|
terminal_ok++;
|
||||||
continue;
|
continue;
|
||||||
} else if (strcmp(*argv, "skip_hw") == 0) {
|
} else if (strcmp(*argv, "skip_hw") == 0) {
|
||||||
NEXT_ARG();
|
|
||||||
flags |= TCA_CLS_FLAGS_SKIP_HW;
|
flags |= TCA_CLS_FLAGS_SKIP_HW;
|
||||||
continue;
|
|
||||||
} else if (strcmp(*argv, "skip_sw") == 0) {
|
} else if (strcmp(*argv, "skip_sw") == 0) {
|
||||||
NEXT_ARG();
|
|
||||||
flags |= TCA_CLS_FLAGS_SKIP_SW;
|
flags |= TCA_CLS_FLAGS_SKIP_SW;
|
||||||
continue;
|
|
||||||
} else if (strcmp(*argv, "help") == 0) {
|
} else if (strcmp(*argv, "help") == 0) {
|
||||||
explain();
|
explain();
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,6 @@
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#ifdef HAVE_LIBBSD
|
|
||||||
#include <bsd/string.h>
|
|
||||||
#endif
|
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "tc_util.h"
|
#include "tc_util.h"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ CFLAGS=
|
||||||
include ../../config.mk
|
include ../../config.mk
|
||||||
|
|
||||||
generate_nlmsg: generate_nlmsg.c ../../lib/libnetlink.c
|
generate_nlmsg: generate_nlmsg.c ../../lib/libnetlink.c
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -I../../include -include../../include/uapi/linux/netlink.h -o $@ $^ -lmnl
|
$(QUIET_CC) $(CPPFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -I../../include -include../../include/uapi/linux/netlink.h -o $@ $^ -lmnl
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f generate_nlmsg
|
rm -f generate_nlmsg
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue