diff options
author | Tom Gundersen <teg@jklm.no> | 2014-02-20 19:39:49 +0100 |
---|---|---|
committer | Tom Gundersen <teg@jklm.no> | 2014-02-20 21:50:34 +0100 |
commit | 2cc412b59353576cece2d5b30c6a39c70552f0a0 (patch) | |
tree | dc8257a5b09b0ceca44ddda74d9df20f825e9842 /src/network | |
parent | b77c08e06b67d5b1dd8aaf67b732e93851d8ae43 (diff) |
network/link: Match - filter on kernel cmdline, host and virt
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/networkd-gperf.gperf | 57 | ||||
-rw-r--r-- | src/network/networkd-network.c | 3 | ||||
-rw-r--r-- | src/network/networkd.h | 4 |
3 files changed, 36 insertions, 28 deletions
diff --git a/src/network/networkd-gperf.gperf b/src/network/networkd-gperf.gperf index ecc5ca0bab..cfffb3321d 100644 --- a/src/network/networkd-gperf.gperf +++ b/src/network/networkd-gperf.gperf @@ -15,30 +15,33 @@ struct ConfigPerfItem; %struct-type %includes %% -Match.MACAddress, config_parse_hwaddr, 0, offsetof(Network, match_mac) -Match.Path, config_parse_string, 0, offsetof(Network, match_path) -Match.Driver, config_parse_string, 0, offsetof(Network, match_driver) -Match.Type, config_parse_string, 0, offsetof(Network, match_type) -Match.Name, config_parse_ifname, 0, offsetof(Network, match_name) -Network.Description, config_parse_string, 0, offsetof(Network, description) -Network.Bridge, config_parse_bridge, 0, offsetof(Network, bridge) -Network.Bond, config_parse_bond, 0, offsetof(Network, bond) -Network.VLAN, config_parse_vlan, 0, offsetof(Network, vlans) -Network.DHCP, config_parse_bool, 0, offsetof(Network, dhcp) -Network.Address, config_parse_address, 0, 0 -Network.Gateway, config_parse_gateway, 0, 0 -Network.DNS, config_parse_dns, 0, offsetof(Network, dns) -Address.Address, config_parse_address, 0, 0 -Address.Broadcast, config_parse_broadcast, 0, 0 -Address.Label, config_parse_label, 0, 0 -Route.Gateway, config_parse_gateway, 0, 0 -Route.Destination, config_parse_destination, 0, 0 -DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_dns) -DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_mtu) -DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname) -DHCPv4.UseDomainName, config_parse_bool, 0, offsetof(Network, dhcp_domainname) -DHCPv4.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical) -NetDev.Description, config_parse_string, 0, offsetof(NetDev, description) -NetDev.Name, config_parse_ifname, 0, offsetof(NetDev, name) -NetDev.Kind, config_parse_netdev_kind, 0, offsetof(NetDev, kind) -VLAN.Id, config_parse_uint64, 0, offsetof(NetDev, vlanid) +Match.MACAddress, config_parse_hwaddr, 0, offsetof(Network, match_mac) +Match.Path, config_parse_string, 0, offsetof(Network, match_path) +Match.Driver, config_parse_string, 0, offsetof(Network, match_driver) +Match.Type, config_parse_string, 0, offsetof(Network, match_type) +Match.Name, config_parse_ifname, 0, offsetof(Network, match_name) +Match.Host, config_parse_net_condition, CONDITION_HOST, offsetof(Network, match_host) +Match.Virtualization, config_parse_net_condition, CONDITION_VIRTUALIZATION, offsetof(Network, match_virt) +Match.KernelCommandLine, config_parse_net_condition, CONDITION_KERNEL_COMMAND_LINE, offsetof(Network, match_kernel) +Network.Description, config_parse_string, 0, offsetof(Network, description) +Network.Bridge, config_parse_bridge, 0, offsetof(Network, bridge) +Network.Bond, config_parse_bond, 0, offsetof(Network, bond) +Network.VLAN, config_parse_vlan, 0, offsetof(Network, vlans) +Network.DHCP, config_parse_bool, 0, offsetof(Network, dhcp) +Network.Address, config_parse_address, 0, 0 +Network.Gateway, config_parse_gateway, 0, 0 +Network.DNS, config_parse_dns, 0, offsetof(Network, dns) +Address.Address, config_parse_address, 0, 0 +Address.Broadcast, config_parse_broadcast, 0, 0 +Address.Label, config_parse_label, 0, 0 +Route.Gateway, config_parse_gateway, 0, 0 +Route.Destination, config_parse_destination, 0, 0 +DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_dns) +DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_mtu) +DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname) +DHCPv4.UseDomainName, config_parse_bool, 0, offsetof(Network, dhcp_domainname) +DHCPv4.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical) +NetDev.Description, config_parse_string, 0, offsetof(NetDev, description) +NetDev.Name, config_parse_ifname, 0, offsetof(NetDev, name) +NetDev.Kind, config_parse_netdev_kind, 0, offsetof(NetDev, kind) +VLAN.Id, config_parse_uint64, 0, offsetof(NetDev, vlanid) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index a470c22e3d..fd1befcebf 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -175,7 +175,8 @@ int network_get(Manager *manager, struct udev_device *device, Network **ret) { LIST_FOREACH(networks, network, manager->networks) { if (net_match_config(network->match_mac, network->match_path, network->match_driver, network->match_type, - network->match_name, + network->match_name, network->match_host, + network->match_virt, network->match_kernel, udev_device_get_sysattr_value(device, "address"), udev_device_get_property_value(device, "ID_PATH"), udev_device_get_driver(udev_device_get_parent(device)), diff --git a/src/network/networkd.h b/src/network/networkd.h index 5a1bf1a4ca..f16226ad7d 100644 --- a/src/network/networkd.h +++ b/src/network/networkd.h @@ -32,6 +32,7 @@ #include "rtnl-util.h" #include "hashmap.h" #include "list.h" +#include "condition-util.h" typedef struct NetDev NetDev; typedef struct Network Network; @@ -92,6 +93,9 @@ struct Network { char *match_driver; char *match_type; char *match_name; + Condition *match_host; + Condition *match_virt; + Condition *match_kernel; char *description; NetDev *bridge; |