162306a36Sopenharmony_ci/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
262306a36Sopenharmony_ci/* Do not edit directly, auto-generated from: */
362306a36Sopenharmony_ci/*	Documentation/netlink/specs/netdev.yaml */
462306a36Sopenharmony_ci/* YNL-GEN user header */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef _LINUX_NETDEV_GEN_H
762306a36Sopenharmony_ci#define _LINUX_NETDEV_GEN_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <stdlib.h>
1062306a36Sopenharmony_ci#include <string.h>
1162306a36Sopenharmony_ci#include <linux/types.h>
1262306a36Sopenharmony_ci#include <linux/netdev.h>
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cistruct ynl_sock;
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ciextern const struct ynl_family ynl_netdev_family;
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci/* Enums */
1962306a36Sopenharmony_ciconst char *netdev_op_str(int op);
2062306a36Sopenharmony_ciconst char *netdev_xdp_act_str(enum netdev_xdp_act value);
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci/* Common nested types */
2362306a36Sopenharmony_ci/* ============== NETDEV_CMD_DEV_GET ============== */
2462306a36Sopenharmony_ci/* NETDEV_CMD_DEV_GET - do */
2562306a36Sopenharmony_cistruct netdev_dev_get_req {
2662306a36Sopenharmony_ci	struct {
2762306a36Sopenharmony_ci		__u32 ifindex:1;
2862306a36Sopenharmony_ci	} _present;
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	__u32 ifindex;
3162306a36Sopenharmony_ci};
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_cistatic inline struct netdev_dev_get_req *netdev_dev_get_req_alloc(void)
3462306a36Sopenharmony_ci{
3562306a36Sopenharmony_ci	return calloc(1, sizeof(struct netdev_dev_get_req));
3662306a36Sopenharmony_ci}
3762306a36Sopenharmony_civoid netdev_dev_get_req_free(struct netdev_dev_get_req *req);
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cistatic inline void
4062306a36Sopenharmony_cinetdev_dev_get_req_set_ifindex(struct netdev_dev_get_req *req, __u32 ifindex)
4162306a36Sopenharmony_ci{
4262306a36Sopenharmony_ci	req->_present.ifindex = 1;
4362306a36Sopenharmony_ci	req->ifindex = ifindex;
4462306a36Sopenharmony_ci}
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_cistruct netdev_dev_get_rsp {
4762306a36Sopenharmony_ci	struct {
4862306a36Sopenharmony_ci		__u32 ifindex:1;
4962306a36Sopenharmony_ci		__u32 xdp_features:1;
5062306a36Sopenharmony_ci		__u32 xdp_zc_max_segs:1;
5162306a36Sopenharmony_ci	} _present;
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	__u32 ifindex;
5462306a36Sopenharmony_ci	__u64 xdp_features;
5562306a36Sopenharmony_ci	__u32 xdp_zc_max_segs;
5662306a36Sopenharmony_ci};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_civoid netdev_dev_get_rsp_free(struct netdev_dev_get_rsp *rsp);
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci/*
6162306a36Sopenharmony_ci * Get / dump information about a netdev.
6262306a36Sopenharmony_ci */
6362306a36Sopenharmony_cistruct netdev_dev_get_rsp *
6462306a36Sopenharmony_cinetdev_dev_get(struct ynl_sock *ys, struct netdev_dev_get_req *req);
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci/* NETDEV_CMD_DEV_GET - dump */
6762306a36Sopenharmony_cistruct netdev_dev_get_list {
6862306a36Sopenharmony_ci	struct netdev_dev_get_list *next;
6962306a36Sopenharmony_ci	struct netdev_dev_get_rsp obj __attribute__ ((aligned (8)));
7062306a36Sopenharmony_ci};
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_civoid netdev_dev_get_list_free(struct netdev_dev_get_list *rsp);
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_cistruct netdev_dev_get_list *netdev_dev_get_dump(struct ynl_sock *ys);
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci/* NETDEV_CMD_DEV_GET - notify */
7762306a36Sopenharmony_cistruct netdev_dev_get_ntf {
7862306a36Sopenharmony_ci	__u16 family;
7962306a36Sopenharmony_ci	__u8 cmd;
8062306a36Sopenharmony_ci	struct ynl_ntf_base_type *next;
8162306a36Sopenharmony_ci	void (*free)(struct netdev_dev_get_ntf *ntf);
8262306a36Sopenharmony_ci	struct netdev_dev_get_rsp obj __attribute__ ((aligned (8)));
8362306a36Sopenharmony_ci};
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_civoid netdev_dev_get_ntf_free(struct netdev_dev_get_ntf *rsp);
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci#endif /* _LINUX_NETDEV_GEN_H */
88