[systemd-devel] [PATCH] networkd: Introduce ipip tunnel

Susant Sahani susant at redhat.com
Sun Apr 6 21:44:24 PDT 2014


On 04/07/2014 10:05 AM, Susant Sahani wrote:
> On 04/04/2014 10:00 PM, Tom Gundersen wrote:
>> Hi Susant,
Hi Tom,

>>> + log_error_netdev(netdev,
>>> +                                 "Could not append IFLA_IPTUN_LINK 
>>> attribute: %s",
>>> +                                 strerror(-r));
>>> +                return r;
>>> +        }
>>> +
>>> +        r = sd_rtnl_message_append_u32(m, IFLA_IPTUN_LOCAL, 
>>> netdev->tunnel_local.s_addr);
>>> +        if (r < 0) {
>>> +                log_error_netdev(netdev,
>>> +                                 "Could not append IFLA_IPTUN_LOCAL 
>>> attribute: %s",
>>> +                                 strerror(-r));
>>> +                return r;
>>> +        }
>>> +
>>> +        r = sd_rtnl_message_append_u32(m, IFLA_IPTUN_REMOTE, 
>>> netdev->tunnel_remote.s_addr);
>>> +        if (r < 0) {
>>> +                log_error_netdev(netdev,
>>> +                                 "Could not append 
>>> IFLA_IPTUN_REMOTE attribute: %s",
>>> +                                 strerror(-r));
>>> +                return r;
>>> +        }
>> Hm, I guess these should be _append_in_addr() to get the typesafety
>> right (might need to verify that we are using the right types for this
>> in rtnl-types.c.
>  I am missing something in the code . with the current rtnl code
> it does not get appended.  Could you please give a example.
>
>  r= sd_rtnl_message_append_in_addr(m, IFLA_IPTUN_LOCAL, (const struct 
> in_addr *)
> &netdev->tunnel_local.s_addr);
>
> Could not append IFLA_IPTUN_LOCAL attribute: Invalid argument

I just figured out this should do .

git diff rtnl-types.c
diff --git a/src/libsystemd/sd-rtnl/rtnl-types.c 
b/src/libsystemd/sd-rtnl/rtnl-types.c
index 27b7d04..585edc6 100644
--- a/src/libsystemd/sd-rtnl/rtnl-types.c
+++ b/src/libsystemd/sd-rtnl/rtnl-types.c
@@ -103,8 +103,8 @@ static const NLType 
rtnl_link_info_data_bond_types[IFLA_BOND_MAX + 1] = {

  static const NLType rtnl_link_info_data_iptun_types[IFLA_IPTUN_MAX + 
1] = {
          [IFLA_IPTUN_LINK]                = { .type = NLA_U32 },
-        [IFLA_IPTUN_LOCAL]               = { .type = NLA_U32 },
-        [IFLA_IPTUN_REMOTE]              = { .type = NLA_U32 },
+        [IFLA_IPTUN_LOCAL]               = { .type = NLA_IN_ADDR },
+        [IFLA_IPTUN_REMOTE]              = { .type = NLA_IN_ADDR },
          [IFLA_IPTUN_TTL]                 = { .type = NLA_U8 },
          [IFLA_IPTUN_TOS]                 = { .type = NLA_U8 },
          [IFLA_IPTUN_PMTUDISC]            = { .type = NLA_U8 },
Thanks
Susant



More information about the systemd-devel mailing list