summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2019-11-01 02:43:46 -0700
committerMaciej Żenczykowski <maze@google.com>2019-11-01 02:44:54 -0700
commit8c906bbf628cb81fc062b968521e1333a6af232d (patch)
tree4d3271c5ab7376f7cb5f53d391a288780b65e060
parent3cfcdd62dbbe5ba3f272a774683ce204676d473c (diff)
downloadnetd-8c906bbf628cb81fc062b968521e1333a6af232d.tar.gz
move htons() & friends into bpf_net_helpers
Test: builds Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I26a8f27fd04ad6feaeeb54f6b794d87eccf3dae7
-rw-r--r--bpf_progs/bpf_net_helpers.h6
-rw-r--r--bpf_progs/clatd.c6
2 files changed, 6 insertions, 6 deletions
diff --git a/bpf_progs/bpf_net_helpers.h b/bpf_progs/bpf_net_helpers.h
index fcc79f29..239cf318 100644
--- a/bpf_progs/bpf_net_helpers.h
+++ b/bpf_progs/bpf_net_helpers.h
@@ -35,6 +35,12 @@ static int (*bpf_l4_csum_replace)(struct __sk_buff* skb, __u32 offset, __u64 fro
__u64 flags) = (void*)BPF_FUNC_l4_csum_replace;
static int (*bpf_redirect)(__u32 ifindex, __u64 flags) = (void*)BPF_FUNC_redirect;
+// Android only supports little endian architectures
+#define htons(x) (__builtin_constant_p(x) ? ___constant_swab16(x) : __builtin_bswap16(x))
+#define htonl(x) (__builtin_constant_p(x) ? ___constant_swab32(x) : __builtin_bswap32(x))
+#define ntohs(x) htons(x)
+#define ntohl(x) htonl(x)
+
static inline __always_inline __unused bool is_received_skb(struct __sk_buff* skb) {
return skb->pkt_type == PACKET_HOST || skb->pkt_type == PACKET_BROADCAST ||
skb->pkt_type == PACKET_MULTICAST;
diff --git a/bpf_progs/clatd.c b/bpf_progs/clatd.c
index 6b4509af..fb7acfab 100644
--- a/bpf_progs/clatd.c
+++ b/bpf_progs/clatd.c
@@ -33,12 +33,6 @@
// From kernel:include/net/ip.h
#define IP_DF 0x4000 // Flag: "Don't Fragment"
-// Android only supports little endian architectures
-#define htons(x) (__builtin_constant_p(x) ? ___constant_swab16(x) : __builtin_bswap16(x))
-#define htonl(x) (__builtin_constant_p(x) ? ___constant_swab32(x) : __builtin_bswap32(x))
-#define ntohs(x) htons(x)
-#define ntohl(x) htonl(x)
-
DEFINE_BPF_MAP(clat_ingress_map, HASH, ClatIngressKey, ClatIngressValue, 16)
static inline __always_inline int nat64(struct __sk_buff* skb, bool is_ethernet) {