netlink: fix routing-policy-rule netlink type for FRA_GOTO/FRA_UNUSED2
authorThomas Haller <thaller@redhat.com>
Mon, 18 Feb 2019 06:28:02 +0000 (07:28 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 18 Feb 2019 11:49:31 +0000 (12:49 +0100)
- RTA_OIF has no business in the routing-rule policy. It is numerical
  identical to FRA_GOTO. Fix using the correct enum value. Note that
  RTA_OIF/FRA_GOTO was not used by networkd, and the type was already
  correct at uint32. So, there is no change in behavior.

- RTA_GATEWAY also does not belong to the routing-rules. It is numerical
  identical to FRA_UNUSED2. Obviously, that value is unused as well,
  so there is no actual change in behavior either. In particular
  that is because:
    - kernel would not send messages with FRA_UNUSED2 attribute.
    - networkd would not try to parse/send RTA_GATEWAY/FRA_UNUSED2
      attributes.

Fixes: bce67bbee359eec19e6778619b6651100a1c1477

src/libsystemd/sd-netlink/netlink-types.c

index e88c5b5..3fec237 100644 (file)
@@ -651,8 +651,7 @@ static const NLType rtnl_routing_policy_rule_types[] = {
         [FRA_DST]                 = { .type = NETLINK_TYPE_IN_ADDR },
         [FRA_SRC]                 = { .type = NETLINK_TYPE_IN_ADDR },
         [FRA_IIFNAME]             = { .type = NETLINK_TYPE_STRING },
-        [RTA_OIF]                 = { .type = NETLINK_TYPE_U32 },
-        [RTA_GATEWAY]             = { .type = NETLINK_TYPE_IN_ADDR },
+        [FRA_GOTO]                = { .type = NETLINK_TYPE_U32 },
         [FRA_PRIORITY]            = { .type = NETLINK_TYPE_U32 },
         [FRA_FWMARK]              = { .type = NETLINK_TYPE_U32 },
         [FRA_FLOW]                = { .type = NETLINK_TYPE_U32 },