/* Copyright (c) 2016 Facebook * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public * License as published by the Free Software Foundation. */ #define KBUILD_MODNAME "foo" #include #include #include #include #include #include #include "bpf_helpers.h" #define DEFAULT_PKTGEN_UDP_PORT 9 #define IP_MF 0x2000 #define IP_OFFSET 0x1FFF static inline int ip_is_fragment(struct __sk_buff *ctx, __u64 nhoff) { return load_half(ctx, nhoff + offsetof(struct iphdr, frag_off)) & (IP_MF | IP_OFFSET); } SEC("ldabs") int handle_ingress(struct __sk_buff *skb) { __u64 troff = ETH_HLEN + sizeof(struct iphdr); if (load_half(skb, offsetof(struct ethhdr, h_proto)) != ETH_P_IP) return 0; if (load_byte(skb, ETH_HLEN + offsetof(struct iphdr, protocol)) != IPPROTO_UDP || load_byte(skb, ETH_HLEN) != 0x45) return 0; if (ip_is_fragment(skb, ETH_HLEN)) return 0; if (load_half(skb, troff + offsetof(struct udphdr, dest)) == DEFAULT_PKTGEN_UDP_PORT) return TC_ACT_SHOT; return 0; } char _license[] SEC("license") = "GPL"; packet-loop-back net-next plumbingsTobias Klauser
summaryrefslogtreecommitdiff
'>
AgeCommit message (Expand)AuthorFilesLines
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2017-01-26 17:15:44 +0100
committerJohannes Berg <johannes.berg@intel.com>2017-01-26 18:03:09 +0100
commit228c8c6b1f4376788e9d5ab00d50b10228eb40d3 (patch)
treedfd7010fa9480284fe72bb2c4ab50a5225792a10 /net/6lowpan/nhc.c
parent731977e97b3697454a862fec656c2561eabc0b87 (diff)
wireless: define cipher/AKM suites using a macro
The spec writes cipher/AKM suites as something like 00-0F-AC:9, but the part after the colon isn't hex, it's decimal, so that we've already had a few mistakes (in other code, or unmerged patches) to e.g. write 0x000FAC10 instead of 0x000FAC0A. Use a macro to avoid that problem. Reviewed-by: Luca Coelho <luciano.coelho@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/6lowpan/nhc.c')