lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ