Helper function bpf_skb_change_type
Definition
Copyright (c) 2015 The Libbpf Authors. All rights reserved.
Change the packet type for the packet associated to skb. This comes down to setting skb->pkt_type to type, except the eBPF program does not have a write access to skb\ ->pkt_type beside this helper. Using a helper here allows for graceful handling of errors.
The major use case is to change incoming _skb_s to PACKET_HOST in a programmatic way instead of having to recirculate via redirect(..., BPF_F_INGRESS), for example.
Note that type only allows certain values. At this time, they are:
PACKET_HOST
Packet is for us.
PACKET_BROADCAST
Send packet to all.
PACKET_MULTICAST
Send packet to group.
PACKET_OTHERHOST
Send packet to someone else.
Returns
0 on success, or a negative error in case of failure.
static long (* const bpf_skb_change_type)(struct __sk_buff *skb, __u32 type) = (void *) 32;
Usage
Docs could be improved
This part of the docs is incomplete, contributions are very welcome
Program types
This helper call can be used in the following program types:
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome