#pragma once
#include "ethtool-util.h"
-
-#include "libudev.h"
-#include "util.h"
+#include "condition.h"
#include "list.h"
+#include "libudev.h"
typedef struct link_config_ctx link_config_ctx;
typedef struct link_config link_config;
} MACPolicy;
typedef enum NamePolicy {
+ NAMEPOLICY_KERNEL,
+ NAMEPOLICY_DATABASE,
NAMEPOLICY_ONBOARD,
NAMEPOLICY_SLOT,
NAMEPOLICY_PATH,
char *filename;
struct ether_addr *match_mac;
- char *match_path;
- char *match_driver;
- char *match_type;
+ char **match_path;
+ char **match_driver;
+ char **match_type;
+ char **match_name;
+ Condition *match_host;
+ Condition *match_virt;
+ Condition *match_kernel;
+ Condition *match_arch;
char *description;
struct ether_addr *mac;
int link_config_get(link_config_ctx *ctx, struct udev_device *device, struct link_config **ret);
int link_config_apply(link_config_ctx *ctx, struct link_config *config, struct udev_device *device, const char **name);
+int link_get_driver(link_config_ctx *ctx, struct udev_device *device, char **ret);
+
const char *name_policy_to_string(NamePolicy p) _const_;
NamePolicy name_policy_from_string(const char *p) _pure_;