[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20171122200537.26703-6-tom@quantonium.net>
Date: Wed, 22 Nov 2017 12:05:37 -0800
From: Tom Herbert <tom@...ntonium.net>
To: stephen@...workplumber.org
Cc: netdev@...r.kernel.org, rohit@...ntonium.net,
Tom Herbert <tom@...ntonium.net>
Subject: [PATCH iproute 5/5] ila: create ila_common.h
Move common functions related to checksum, identifier and hook-type
parsing to a common include file.
Signed-off-by: Tom Herbert <tom@...ntonium.net>
---
ip/ila_common.h | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++
ip/ipila.c | 77 +-----------------------------------
ip/iproute_lwtunnel.c | 97 +---------------------------------------------
3 files changed, 107 insertions(+), 172 deletions(-)
create mode 100644 ip/ila_common.h
diff --git a/ip/ila_common.h b/ip/ila_common.h
new file mode 100644
index 00000000..04c6c2ed
--- /dev/null
+++ b/ip/ila_common.h
@@ -0,0 +1,105 @@
+#ifndef _ILA_COMMON_H_
+#define _ILA_COMMON_H_
+
+#include <linux/ila.h>
+#include <string.h>
+
+static inline char *ila_csum_mode2name(__u8 csum_mode)
+{
+ switch (csum_mode) {
+ case ILA_CSUM_ADJUST_TRANSPORT:
+ return "adj-transport";
+ case ILA_CSUM_NEUTRAL_MAP:
+ return "neutral-map";
+ case ILA_CSUM_NO_ACTION:
+ return "no-action";
+ case ILA_CSUM_NEUTRAL_MAP_AUTO:
+ return "neutral-map-auto";
+ default:
+ return "unknown";
+ }
+}
+
+static inline int ila_csum_name2mode(char *name)
+{
+ if (strcmp(name, "adj-transport") == 0)
+ return ILA_CSUM_ADJUST_TRANSPORT;
+ else if (strcmp(name, "neutral-map") == 0)
+ return ILA_CSUM_NEUTRAL_MAP;
+ else if (strcmp(name, "neutral-map-auto") == 0)
+ return ILA_CSUM_NEUTRAL_MAP_AUTO;
+ else if (strcmp(name, "no-action") == 0)
+ return ILA_CSUM_NO_ACTION;
+ else if (strcmp(name, "neutral-map-auto") == 0)
+ return ILA_CSUM_NEUTRAL_MAP_AUTO;
+ else
+ return -1;
+}
+
+static inline char *ila_ident_type2name(__u8 ident_type)
+{
+ switch (ident_type) {
+ case ILA_ATYPE_IID:
+ return "iid";
+ case ILA_ATYPE_LUID:
+ return "luid";
+ case ILA_ATYPE_VIRT_V4:
+ return "virt-v4";
+ case ILA_ATYPE_VIRT_UNI_V6:
+ return "virt-uni-v6";
+ case ILA_ATYPE_VIRT_MULTI_V6:
+ return "virt-multi-v6";
+ case ILA_ATYPE_NONLOCAL_ADDR:
+ return "nonlocal-addr";
+ case ILA_ATYPE_USE_FORMAT:
+ return "use-format";
+ default:
+ return "unknown";
+ }
+}
+
+static inline int ila_ident_name2type(char *name)
+{
+ if (!strcmp(name, "luid"))
+ return ILA_ATYPE_LUID;
+ else if (!strcmp(name, "use-format"))
+ return ILA_ATYPE_USE_FORMAT;
+#if 0 /* No kernel support for configuring these yet */
+ else if (!strcmp(name, "iid"))
+ return ILA_ATYPE_IID;
+ else if (!strcmp(name, "virt-v4"))
+ return ILA_ATYPE_VIRT_V4;
+ else if (!strcmp(name, "virt-uni-v6"))
+ return ILA_ATYPE_VIRT_UNI_V6;
+ else if (!strcmp(name, "virt-multi-v6"))
+ return ILA_ATYPE_VIRT_MULTI_V6;
+ else if (!strcmp(name, "nonlocal-addr"))
+ return ILA_ATYPE_NONLOCAL_ADDR;
+#endif
+ else
+ return -1;
+}
+
+static inline char *ila_hook_type2name(__u8 hook_type)
+{
+ switch (hook_type) {
+ case ILA_HOOK_ROUTE_OUTPUT:
+ return "output";
+ case ILA_HOOK_ROUTE_INPUT:
+ return "input";
+ default:
+ return "unknown";
+ }
+}
+
+static inline int ila_hook_name2type(char *name)
+{
+ if (!strcmp(name, "output"))
+ return ILA_HOOK_ROUTE_OUTPUT;
+ else if (!strcmp(name, "input"))
+ return ILA_HOOK_ROUTE_INPUT;
+ else
+ return -1;
+}
+
+#endif /* _ILA_COMMON_H_ */
diff --git a/ip/ipila.c b/ip/ipila.c
index c7a8ede8..fcc20bf7 100644
--- a/ip/ipila.c
+++ b/ip/ipila.c
@@ -22,6 +22,7 @@
#include "libgenl.h"
#include "utils.h"
#include "ip_common.h"
+#include "ila_common.h"
static void usage(void)
{
@@ -51,82 +52,6 @@ static int genl_family = -1;
#define ADDR_BUF_SIZE sizeof("xxxx:xxxx:xxxx:xxxx")
-static char *ila_csum_mode2name(__u8 csum_mode)
-{
- switch (csum_mode) {
- case ILA_CSUM_ADJUST_TRANSPORT:
- return "adj-transport";
- case ILA_CSUM_NEUTRAL_MAP:
- return "neutral-map";
- case ILA_CSUM_NO_ACTION:
- return "no-action";
- case ILA_CSUM_NEUTRAL_MAP_AUTO:
- return "neutral-map-auto";
- default:
- return "unknown";
- }
-}
-
-static int ila_csum_name2mode(char *name)
-{
- if (strcmp(name, "adj-transport") == 0)
- return ILA_CSUM_ADJUST_TRANSPORT;
- else if (strcmp(name, "neutral-map") == 0)
- return ILA_CSUM_NEUTRAL_MAP;
- else if (strcmp(name, "neutral-map-auto") == 0)
- return ILA_CSUM_NEUTRAL_MAP_AUTO;
- else if (strcmp(name, "no-action") == 0)
- return ILA_CSUM_NO_ACTION;
- else if (strcmp(name, "neutral-map-auto") == 0)
- return ILA_CSUM_NEUTRAL_MAP_AUTO;
- else
- return -1;
-}
-
-static char *ila_ident_type2name(__u8 ident_type)
-{
- switch (ident_type) {
- case ILA_ATYPE_IID:
- return "iid";
- case ILA_ATYPE_LUID:
- return "luid";
- case ILA_ATYPE_VIRT_V4:
- return "virt-v4";
- case ILA_ATYPE_VIRT_UNI_V6:
- return "virt-uni-v6";
- case ILA_ATYPE_VIRT_MULTI_V6:
- return "virt-multi-v6";
- case ILA_ATYPE_NONLOCAL_ADDR:
- return "nonlocal-addr";
- case ILA_ATYPE_USE_FORMAT:
- return "use-format";
- default:
- return "unknown";
- }
-}
-
-static int ila_ident_name2type(char *name)
-{
- if (!strcmp(name, "luid"))
- return ILA_ATYPE_LUID;
- else if (!strcmp(name, "use-format"))
- return ILA_ATYPE_USE_FORMAT;
-#if 0 /* No kernel support for configuring these yet */
- else if (!strcmp(name, "iid"))
- return ILA_ATYPE_IID;
- else if (!strcmp(name, "virt-v4"))
- return ILA_ATYPE_VIRT_V4;
- else if (!strcmp(name, "virt-uni-v6"))
- return ILA_ATYPE_VIRT_UNI_V6;
- else if (!strcmp(name, "virt-multi-v6"))
- return ILA_ATYPE_VIRT_MULTI_V6;
- else if (!strcmp(name, "nonlocal-addr"))
- return ILA_ATYPE_NONLOCAL_ADDR;
-#endif
- else
- return -1;
-}
-
static int print_addr64(__u64 addr, char *buff, size_t len)
{
__u16 *words = (__u16 *)&addr;
diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c
index e57cc9f3..27266171 100644
--- a/ip/iproute_lwtunnel.c
+++ b/ip/iproute_lwtunnel.c
@@ -25,6 +25,7 @@
#include "utils.h"
#include "iproute_lwtunnel.h"
#include "bpf_util.h"
+#include "ila_common.h"
#include <linux/seg6.h>
#include <linux/seg6_iptunnel.h>
@@ -279,102 +280,6 @@ static void print_encap_ip(FILE *fp, struct rtattr *encap)
fprintf(fp, "tos %d ", rta_getattr_u8(tb[LWTUNNEL_IP_TOS]));
}
-static char *ila_csum_mode2name(__u8 csum_mode)
-{
- switch (csum_mode) {
- case ILA_CSUM_ADJUST_TRANSPORT:
- return "adj-transport";
- case ILA_CSUM_NEUTRAL_MAP:
- return "neutral-map";
- case ILA_CSUM_NO_ACTION:
- return "no-action";
- case ILA_CSUM_NEUTRAL_MAP_AUTO:
- return "neutral-map-auto";
- default:
- return "unknown";
- }
-}
-
-static int ila_csum_name2mode(char *name)
-{
- if (strcmp(name, "adj-transport") == 0)
- return ILA_CSUM_ADJUST_TRANSPORT;
- else if (strcmp(name, "neutral-map") == 0)
- return ILA_CSUM_NEUTRAL_MAP;
- else if (strcmp(name, "no-action") == 0)
- return ILA_CSUM_NO_ACTION;
- else if (strcmp(name, "neutral-map-auto") == 0)
- return ILA_CSUM_NEUTRAL_MAP_AUTO;
- else
- return -1;
-}
-
-static char *ila_ident_type2name(__u8 ident_type)
-{
- switch (ident_type) {
- case ILA_ATYPE_IID:
- return "iid";
- case ILA_ATYPE_LUID:
- return "luid";
- case ILA_ATYPE_VIRT_V4:
- return "virt-v4";
- case ILA_ATYPE_VIRT_UNI_V6:
- return "virt-uni-v6";
- case ILA_ATYPE_VIRT_MULTI_V6:
- return "virt-multi-v6";
- case ILA_ATYPE_NONLOCAL_ADDR:
- return "nonlocal-addr";
- case ILA_ATYPE_USE_FORMAT:
- return "use-format";
- default:
- return "unknown";
- }
-}
-
-static int ila_ident_name2type(char *name)
-{
- if (!strcmp(name, "luid"))
- return ILA_ATYPE_LUID;
- else if (!strcmp(name, "use-format"))
- return ILA_ATYPE_USE_FORMAT;
-#if 0 /* No kernel support for configuring these yet */
- else if (!strcmp(name, "iid"))
- return ILA_ATYPE_IID;
- else if (!strcmp(name, "virt-v4"))
- return ILA_ATYPE_VIRT_V4;
- else if (!strcmp(name, "virt-uni-v6"))
- return ILA_ATYPE_VIRT_UNI_V6;
- else if (!strcmp(name, "virt-multi-v6"))
- return ILA_ATYPE_VIRT_MULTI_V6;
- else if (!strcmp(name, "nonlocal-addr"))
- return ILA_ATYPE_NONLOCAL_ADDR;
-#endif
- else
- return -1;
-}
-
-static char *ila_hook_type2name(__u8 hook_type)
-{
- switch (hook_type) {
- case ILA_HOOK_ROUTE_OUTPUT:
- return "output";
- case ILA_HOOK_ROUTE_INPUT:
- return "input";
- default:
- return "unknown";
- }
-}
-
-static int ila_hook_name2type(char *name)
-{
- if (!strcmp(name, "output"))
- return ILA_HOOK_ROUTE_OUTPUT;
- else if (!strcmp(name, "input"))
- return ILA_HOOK_ROUTE_INPUT;
- else
- return -1;
-}
-
static void print_encap_ila(FILE *fp, struct rtattr *encap)
{
struct rtattr *tb[ILA_ATTR_MAX+1];
--
2.11.0
Powered by blists - more mailing lists