From: Stijn Tintel Date: Fri, 21 Jul 2017 18:57:47 +0000 (+0200) Subject: system-linux: fix GRE ikey/okey endianness X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=34afb764077768a361d76256fb05cbba172de223;p=oweals%2Fnetifd.git system-linux: fix GRE ikey/okey endianness The kernel expects IFLA_GRE_IKEY and IFLA_GRE_OKEY to be in network byte order, so convert the values from host byte order. Fixes ikey/okey on little endian systems. Signed-off-by: Stijn Tintel --- diff --git a/system-linux.c b/system-linux.c index f7704cf..483a98d 100644 --- a/system-linux.c +++ b/system-linux.c @@ -2446,10 +2446,10 @@ static int system_add_gre_tunnel(const char *name, const char *kind, nla_put_u16(nlm, IFLA_GRE_IFLAGS, iflags); if (okey) - nla_put_u32(nlm, IFLA_GRE_OKEY, okey); + nla_put_u32(nlm, IFLA_GRE_OKEY, htonl(okey)); if (ikey) - nla_put_u32(nlm, IFLA_GRE_IKEY, ikey); + nla_put_u32(nlm, IFLA_GRE_IKEY, htonl(ikey)); nla_nest_end(nlm, infodata); nla_nest_end(nlm, linkinfo);