summaryrefslogtreecommitdiff
path: root/src/network/networkd-manager.h
diff options
context:
space:
mode:
authorSusant Sahani <ssahani@users.noreply.github.com>2017-09-14 19:51:39 +0000
committerLennart Poettering <lennart@poettering.net>2017-09-14 21:51:39 +0200
commitbce67bbee359eec19e6778619b6651100a1c1477 (patch)
treef8ed94b3c8736beb7dbfa4a10cb75a356b4b55a9 /src/network/networkd-manager.h
parentf1e24a259ca182b6cd8a723a56da43435ce48aac (diff)
downloadsystemd-bce67bbee359eec19e6778619b6651100a1c1477.tar.gz
networkd: add support to configure IP Rule (#5725)
Routing Policy rule manipulates rules in the routing policy database control the route selection algorithm. This work supports to configure Rule ``` [RoutingPolicyRule] TypeOfService=0x08 Table=7 From= 192.168.100.18 ``` ``` ip rule show 0: from all lookup local 0: from 192.168.100.18 tos 0x08 lookup 7 ``` V2 changes: 1. Added logic to handle duplicate rules. 2. If rules are changed or deleted and networkd restarted then those are deleted when networkd restarts next time V3: 1. Add parse_fwmark_fwmask
Diffstat (limited to 'src/network/networkd-manager.h')
-rw-r--r--src/network/networkd-manager.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/network/networkd-manager.h b/src/network/networkd-manager.h
index e2447c2230..254aab8452 100644
--- a/src/network/networkd-manager.h
+++ b/src/network/networkd-manager.h
@@ -65,6 +65,10 @@ struct Manager {
DUID duid;
char* dynamic_hostname;
char* dynamic_timezone;
+
+ Set *rules;
+ Set *rules_foreign;
+ Set *rules_saved;
};
static inline const DUID* link_duid(const Link *link) {
@@ -88,9 +92,11 @@ bool manager_should_reload(Manager *m);
int manager_rtnl_enumerate_links(Manager *m);
int manager_rtnl_enumerate_addresses(Manager *m);
int manager_rtnl_enumerate_routes(Manager *m);
+int manager_rtnl_enumerate_rules(Manager *m);
int manager_rtnl_process_address(sd_netlink *nl, sd_netlink_message *message, void *userdata);
int manager_rtnl_process_route(sd_netlink *nl, sd_netlink_message *message, void *userdata);
+int manager_rtnl_process_rule(sd_netlink *nl, sd_netlink_message *message, void *userdata);
int manager_send_changed(Manager *m, const char *property, ...) _sentinel_;
void manager_dirty(Manager *m);