summaryrefslogtreecommitdiff
path: root/trie.h
blob: c46399192032ebea0449cdba82e3b5dcc9815eb5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifndef TRIE_H
#define TRIE_H

#include <netinet/in.h>

extern void trie_addr_lookup(char *buff, size_t len, int ipv4, int *fd,
			     struct sockaddr_storage *addr, size_t *alen);
extern int trie_addr_maybe_update(char *buff, size_t len, int ipv4, int fd,
				  struct sockaddr_storage *addr, size_t alen);
extern void trie_addr_remove(int fd);
extern void trie_addr_remove_addr(struct sockaddr_storage *addr, size_t alen);
extern void trie_init(void);
extern void trie_cleanup(void);

#endif /* TRIE_H */
type BPF_K or CONST_IMM. The patch fixes both, otherwise the verifer reports the following error: [...] R0=imm0,min_value=0,max_value=0 R1=pkt(id=0,off=0,r=4) R2=pkt_end R3=fp-12 R4=imm4,min_value=4,max_value=4 R5=pkt(id=0,off=4,r=4) 269: (bf) r2 = r0 // r2 becomes imm0 270: (77) r2 >>= 3 271: (bf) r4 = r1 // r4 becomes pkt ptr 272: (0f) r4 += r2 // r4 += 0 addition of negative constant to packet pointer is not allowed Signed-off-by: William Tu <u9012063@gmail.com> Signed-off-by: Mihai Budiu <mbudiu@vmware.com> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net> 2017-02-06bpf: test for AND edge casesJosef Bacik1-0/+55 These two tests are based on the work done for f23cc643f9ba. The first test is just a basic one to make sure we don't allow AND'ing negative values, even if it would result in a valid index for the array. The second is a cleaned up version of the original testcase provided by Jann Horn that resulted in the commit. Acked-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: David S. Miller <davem@davemloft.net>