| /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ |
| /* Do not edit directly, auto-generated from: */ |
| /* Documentation/netlink/specs/netdev.yaml */ |
| /* YNL-GEN user header */ |
| |
| #ifndef _LINUX_NETDEV_GEN_H |
| #define _LINUX_NETDEV_GEN_H |
| |
| #include <stdlib.h> |
| #include <string.h> |
| #include <linux/types.h> |
| #include <linux/netdev.h> |
| |
| struct ynl_sock; |
| |
| extern const struct ynl_family ynl_netdev_family; |
| |
| /* Enums */ |
| const char *netdev_op_str(int op); |
| const char *netdev_xdp_act_str(enum netdev_xdp_act value); |
| const char *netdev_xdp_rx_metadata_str(enum netdev_xdp_rx_metadata value); |
| |
| /* Common nested types */ |
| /* ============== NETDEV_CMD_DEV_GET ============== */ |
| /* NETDEV_CMD_DEV_GET - do */ |
| struct netdev_dev_get_req { |
| struct { |
| __u32 ifindex:1; |
| } _present; |
| |
| __u32 ifindex; |
| }; |
| |
| static inline struct netdev_dev_get_req *netdev_dev_get_req_alloc(void) |
| { |
| return calloc(1, sizeof(struct netdev_dev_get_req)); |
| } |
| void netdev_dev_get_req_free(struct netdev_dev_get_req *req); |
| |
| static inline void |
| netdev_dev_get_req_set_ifindex(struct netdev_dev_get_req *req, __u32 ifindex) |
| { |
| req->_present.ifindex = 1; |
| req->ifindex = ifindex; |
| } |
| |
| struct netdev_dev_get_rsp { |
| struct { |
| __u32 ifindex:1; |
| __u32 xdp_features:1; |
| __u32 xdp_zc_max_segs:1; |
| __u32 xdp_rx_metadata_features:1; |
| } _present; |
| |
| __u32 ifindex; |
| __u64 xdp_features; |
| __u32 xdp_zc_max_segs; |
| __u64 xdp_rx_metadata_features; |
| }; |
| |
| void netdev_dev_get_rsp_free(struct netdev_dev_get_rsp *rsp); |
| |
| /* |
| * Get / dump information about a netdev. |
| */ |
| struct netdev_dev_get_rsp * |
| netdev_dev_get(struct ynl_sock *ys, struct netdev_dev_get_req *req); |
| |
| /* NETDEV_CMD_DEV_GET - dump */ |
| struct netdev_dev_get_list { |
| struct netdev_dev_get_list *next; |
| struct netdev_dev_get_rsp obj __attribute__((aligned(8))); |
| }; |
| |
| void netdev_dev_get_list_free(struct netdev_dev_get_list *rsp); |
| |
| struct netdev_dev_get_list *netdev_dev_get_dump(struct ynl_sock *ys); |
| |
| /* NETDEV_CMD_DEV_GET - notify */ |
| struct netdev_dev_get_ntf { |
| __u16 family; |
| __u8 cmd; |
| struct ynl_ntf_base_type *next; |
| void (*free)(struct netdev_dev_get_ntf *ntf); |
| struct netdev_dev_get_rsp obj __attribute__((aligned(8))); |
| }; |
| |
| void netdev_dev_get_ntf_free(struct netdev_dev_get_ntf *rsp); |
| |
| #endif /* _LINUX_NETDEV_GEN_H */ |