1/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 2/* Do not edit directly, auto-generated from: */ 3/* Documentation/netlink/specs/netdev.yaml */ 4/* YNL-GEN user header */ 5 6#ifndef _LINUX_NETDEV_GEN_H 7#define _LINUX_NETDEV_GEN_H 8 9#include <stdlib.h> 10#include <string.h> 11#include <linux/types.h> 12#include <linux/netdev.h> 13 14struct ynl_sock; 15 16extern const struct ynl_family ynl_netdev_family; 17 18/* Enums */ 19const char *netdev_op_str(int op); 20const char *netdev_xdp_act_str(enum netdev_xdp_act value); 21 22/* Common nested types */ 23/* ============== NETDEV_CMD_DEV_GET ============== */ 24/* NETDEV_CMD_DEV_GET - do */ 25struct netdev_dev_get_req { 26 struct { 27 __u32 ifindex:1; 28 } _present; 29 30 __u32 ifindex; 31}; 32 33static inline struct netdev_dev_get_req *netdev_dev_get_req_alloc(void) 34{ 35 return calloc(1, sizeof(struct netdev_dev_get_req)); 36} 37void netdev_dev_get_req_free(struct netdev_dev_get_req *req); 38 39static inline void 40netdev_dev_get_req_set_ifindex(struct netdev_dev_get_req *req, __u32 ifindex) 41{ 42 req->_present.ifindex = 1; 43 req->ifindex = ifindex; 44} 45 46struct netdev_dev_get_rsp { 47 struct { 48 __u32 ifindex:1; 49 __u32 xdp_features:1; 50 __u32 xdp_zc_max_segs:1; 51 } _present; 52 53 __u32 ifindex; 54 __u64 xdp_features; 55 __u32 xdp_zc_max_segs; 56}; 57 58void netdev_dev_get_rsp_free(struct netdev_dev_get_rsp *rsp); 59 60/* 61 * Get / dump information about a netdev. 62 */ 63struct netdev_dev_get_rsp * 64netdev_dev_get(struct ynl_sock *ys, struct netdev_dev_get_req *req); 65 66/* NETDEV_CMD_DEV_GET - dump */ 67struct netdev_dev_get_list { 68 struct netdev_dev_get_list *next; 69 struct netdev_dev_get_rsp obj __attribute__ ((aligned (8))); 70}; 71 72void netdev_dev_get_list_free(struct netdev_dev_get_list *rsp); 73 74struct netdev_dev_get_list *netdev_dev_get_dump(struct ynl_sock *ys); 75 76/* NETDEV_CMD_DEV_GET - notify */ 77struct netdev_dev_get_ntf { 78 __u16 family; 79 __u8 cmd; 80 struct ynl_ntf_base_type *next; 81 void (*free)(struct netdev_dev_get_ntf *ntf); 82 struct netdev_dev_get_rsp obj __attribute__ ((aligned (8))); 83}; 84 85void netdev_dev_get_ntf_free(struct netdev_dev_get_ntf *rsp); 86 87#endif /* _LINUX_NETDEV_GEN_H */ 88