about summary refs log tree commit diff
path: root/src/libnm-platform/nmp-ethtool-ioctl.h
blob: 1c973649eb43c148fe307aed889f181b1ada21b1 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#ifndef __NMP_ETHTOOL_IOCTL_H__
#define __NMP_ETHTOOL_IOCTL_H__

#include "libnm-platform/nmp-base.h"
#include "libnm-platform/nm-netlink.h"

gboolean nmp_ethtool_ioctl_supports_carrier_detect(int ifindex);

gboolean nmp_ethtool_ioctl_supports_vlans(int ifindex);

gboolean nmp_ethtool_ioctl_get_wake_on_lan(int ifindex);

gboolean nmp_ethtool_ioctl_set_wake_on_lan(int                      ifindex,
                                           _NMSettingWiredWakeOnLan wol,
                                           const char              *wol_password);

gboolean nmp_ethtool_ioctl_get_link_settings(int                       ifindex,
                                             gboolean                 *out_autoneg,
                                             guint32                  *out_speed,
                                             NMPlatformLinkDuplexType *out_duplex);
gboolean nmp_ethtool_ioctl_set_link_settings(int                      ifindex,
                                             gboolean                 autoneg,
                                             guint32                  speed,
                                             NMPlatformLinkDuplexType duplex);

gboolean nmp_ethtool_ioctl_get_permanent_address(int ifindex, guint8 *buf, size_t *length);

gboolean nmp_ethtool_ioctl_get_driver_info(int ifindex, NMPUtilsEthtoolDriverInfo *data);

NMEthtoolFeatureStates *nmp_ethtool_ioctl_get_features(int ifindex);

gboolean nmp_ethtool_ioctl_set_features(
    int                           ifindex,
    const NMEthtoolFeatureStates *features,
    const NMOptionBool *requested /* indexed by NMEthtoolID - _NM_ETHTOOL_ID_FEATURE_FIRST */,
    gboolean            do_set /* or reset */);

gboolean nmp_ethtool_ioctl_get_coalesce(int ifindex, NMEthtoolCoalesceState *coalesce);

gboolean nmp_ethtool_ioctl_set_coalesce(int ifindex, const NMEthtoolCoalesceState *coalesce);

gboolean nmp_ethtool_ioctl_get_channels(int ifindex, NMEthtoolChannelsState *channels);

gboolean nmp_ethtool_ioctl_set_channels(int ifindex, const NMEthtoolChannelsState *channels);

gboolean nmp_ethtool_ioctl_get_fec_mode(int ifindex, uint32_t *fec_mode);

gboolean nmp_ethtool_ioctl_set_fec_mode(int ifindex, uint32_t fec_mode);

gboolean nmp_mii_ioctl_supports_carrier_detect(int ifindex);

#endif /* __NMP_ETHTOOL_IOCTL_H__ */