summary refs log tree commit diff
path: root/src/libnm-platform/devlink/nm-devlink.h
blob: c626a1206d030cb3b912ce7bbaaaf8b9b37ea5ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
 * Copyright (C) 2024 Red Hat, Inc.
 */

#ifndef __NMP_DEVLINK_H__
#define __NMP_DEVLINK_H__

#include "libnm-base/nm-base.h"
#include <linux/devlink.h>

struct nl_sock;
typedef struct _NMPlatform NMPlatform;
typedef struct _NMDevlink  NMDevlink;

typedef struct {
    _NMSriovEswitchMode       mode;
    _NMSriovEswitchInlineMode inline_mode;
    _NMSriovEswitchEncapMode  encap_mode;
} NMDevlinkEswitchParams;

NMDevlink *nm_devlink_new(NMPlatform *platform, struct nl_sock *genl_sock_sync, int ifindex);
gboolean
nm_devlink_get_dev_identifier(NMDevlink *self, char **out_bus, char **out_addr, GError **error);
gboolean
nm_devlink_get_eswitch_params(NMDevlink *self, NMDevlinkEswitchParams *out_params, GError **error);
gboolean
nm_devlink_set_eswitch_params(NMDevlink *self, NMDevlinkEswitchParams params, GError **error);

#endif /* __NMP_DEVLINK_H__ */