]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
missing: support old linux/fou.h 10477/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 21 Oct 2018 09:35:46 +0000 (18:35 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sun, 21 Oct 2018 13:34:28 +0000 (22:34 +0900)
linux/fou.h was introduced in 3.18.
FOU_ATTR_REMCSUM_NOPARTIAL was added in 4.0.
FOU_CMD_GET was added in 4.1.

Follow-up for 53cb501a1314740fa777f145067cefccda954487.
Fixes #10474.

meson.build
src/basic/missing.h
src/libsystemd/sd-netlink/netlink-types.c
src/network/netdev/fou-tunnel.h
src/network/netdev/tunnel.c

index 7960e978936ccd11e4f53d7afe383284ee7f297f..3b010215629662608993d5e3ee6d8c0605dff176 100644 (file)
@@ -476,7 +476,6 @@ foreach decl : [['IFLA_INET6_ADDR_GEN_MODE',         'linux/if_link.h'],
                 ['VXCAN_INFO_PEER',                  'linux/can/vxcan.h'],
                 ['FOU_ATTR_REMCSUM_NOPARTIAL',       'linux/fou.h'],
                 ['FOU_CMD_GET',                      'linux/fou.h'],
-                ['FOU_ENCAP_GUE',                    'linux/fou.h'],
                ]
         prefix = decl.length() > 2 ? decl[2] : ''
         have = cc.has_header_symbol(decl[1], decl[0], prefix : prefix)
@@ -608,6 +607,7 @@ if not cc.has_header('sys/capability.h')
 endif
 foreach header : ['crypt.h',
                   'linux/btrfs.h',
+                  'linux/fou.h',
                   'linux/memfd.h',
                   'linux/vm_sockets.h',
                   'sys/auxv.h',
index e666e2ba2d036a91938edbe759d22f3adbedc228..648a2b92d9872579f072f6396da3a49cc54d8821 100644 (file)
@@ -1417,33 +1417,39 @@ struct statx {
 #define FOU_GENL_VERSION        0x1
 #endif
 
+#if !HAVE_LINUX_FOU_H
+#define FOU_ATTR_UNSPEC            0
+#define FOU_ATTR_PORT              1
+#define FOU_ATTR_AF                2
+#define FOU_ATTR_IPPROTO           3
+#define FOU_ATTR_TYPE              4
+#endif
 #if !HAVE_FOU_ATTR_REMCSUM_NOPARTIAL
-#define FOU_ATTR_UNSPEC 0
-#define FOU_ATTR_PORT 1
-#define FOU_ATTR_AF 2
-#define FOU_ATTR_IPPROTO 3
-#define FOU_ATTR_TYPE 4
 #define FOU_ATTR_REMCSUM_NOPARTIAL 5
-#define __FOU_ATTR_MAX 6
-
-#define FOU_ATTR_MAX (__FOU_ATTR_MAX - 1)
+#undef  FOU_ATTR_MAX
+#endif
+#ifndef FOU_ATTR_MAX
+#define FOU_ATTR_MAX               5
 #endif
 
+#if !HAVE_LINUX_FOU_H
+#define FOU_CMD_UNSPEC             0
+#define FOU_CMD_ADD                1
+#define FOU_CMD_DEL                2
+#endif
 #if !HAVE_FOU_CMD_GET
-#define FOU_CMD_UNSPEC 0
-#define FOU_CMD_ADD 1
-#define FOU_CMD_DEL 2
-#define FOU_CMD_GET 3
-#define __FOU_CMD_MAX 4
-
-#define FOU_CMD_MAX (__FOU_CMD_MAX - 1)
+#define FOU_CMD_GET                3
+#undef  FOU_CMD_MAX
+#endif
+#ifndef FOU_CMD_MAX
+#define FOU_CMD_MAX                3
 #endif
 
-#if !HAVE_FOU_ENCAP_GUE
-#define FOU_ENCAP_UNSPEC 0
-#define FOU_ENCAP_DIRECT 1
-#define FOU_ENCAP_GUE 2
-#define __FOU_ENCAP_MAX 3
+#if !HAVE_LINUX_FOU_H
+#define FOU_ENCAP_UNSPEC           0
+#define FOU_ENCAP_DIRECT           1
+#define FOU_ENCAP_GUE              2
+#define __FOU_ENCAP_MAX            3
 
 #define FOU_ENCAP_MAX (__FOU_ENCAP_MAX - 1)
 #endif
index 1e5b6a9dbbeb087af86e26f79607e0d4d5837864..336590681383a3ccf8fd3e5a2541ec174639cc0f 100644 (file)
@@ -17,7 +17,7 @@
 #include <linux/if_tunnel.h>
 #include <linux/veth.h>
 
-#if HAVE_FOU_CMD_GET
+#if HAVE_LINUX_FOU_H
 #include <linux/fou.h>
 #endif
 
index 58bcab31640d745b5e89f026fb222005870fbe2f..28111fd1577650f767db0972fa8e6084c7fb6de2 100644 (file)
@@ -1,11 +1,12 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 #pragma once
 
-#if HAVE_FOU_CMD_GET
+#if HAVE_LINUX_FOU_H
 #include <linux/fou.h>
 #endif
 
 #include "in-addr-util.h"
+#include "missing.h"
 #include "netdev/netdev.h"
 
 typedef enum FooOverUDPEncapType {
index e39dff7b9090b719c4cc868aef1fc86fda1ac7ea..826c7088fe25c2fc581c1c9b0e99fa1161a38b47 100644 (file)
@@ -6,12 +6,12 @@
 #include <linux/if_tunnel.h>
 #include <linux/ip6_tunnel.h>
 
-#include "sd-netlink.h"
-
-#if HAVE_FOU_CMD_GET
+#if HAVE_LINUX_FOU_H
 #include <linux/fou.h>
 #endif
 
+#include "sd-netlink.h"
+
 #include "conf-parser.h"
 #include "missing.h"
 #include "networkd-link.h"