bpf: Add support for reading socket family, type, protocol
Add socket family, type and protocol to bpf_sock allowing bpf programs read-only access. Add __sk_flags_offset[0] to struct sock before the bitfield to programmtically determine the offset of the unsigned int containing protocol and type. Signed-off-by: David Ahern <dsa@cumulusnetworks.com> Acked-by: Alexei Starovoitov <ast@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
ad2805dc79
commit
aa4c1037a3
@@ -389,6 +389,21 @@ struct sock {
|
||||
* Because of non atomicity rules, all
|
||||
* changes are protected by socket lock.
|
||||
*/
|
||||
unsigned int __sk_flags_offset[0];
|
||||
#ifdef __BIG_ENDIAN_BITFIELD
|
||||
#define SK_FL_PROTO_SHIFT 16
|
||||
#define SK_FL_PROTO_MASK 0x00ff0000
|
||||
|
||||
#define SK_FL_TYPE_SHIFT 0
|
||||
#define SK_FL_TYPE_MASK 0x0000ffff
|
||||
#else
|
||||
#define SK_FL_PROTO_SHIFT 8
|
||||
#define SK_FL_PROTO_MASK 0x0000ff00
|
||||
|
||||
#define SK_FL_TYPE_SHIFT 16
|
||||
#define SK_FL_TYPE_MASK 0xffff0000
|
||||
#endif
|
||||
|
||||
kmemcheck_bitfield_begin(flags);
|
||||
unsigned int sk_padding : 2,
|
||||
sk_no_check_tx : 1,
|
||||
|
||||
Reference in New Issue
Block a user