mirror of https://gitee.com/openkylin/linux.git
docs, af_xdp: Consistent indentation in examples
Examples in this document use all kinds of indentation from 3 to 5 spaces and even mixed with tabs. Making them all even and equal to 4 spaces. Signed-off-by: Ilya Maximets <i.maximets@ovn.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Magnus Karlsson <magnus.karlsson@intel.com> Link: https://lore.kernel.org/bpf/20210622185647.3705104-1-i.maximets@ovn.org
This commit is contained in:
parent
ee62a5c6bb
commit
4b9718b5a2
|
@ -290,19 +290,19 @@ round-robin example of distributing packets is shown below:
|
||||||
#define MAX_SOCKS 16
|
#define MAX_SOCKS 16
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
__uint(type, BPF_MAP_TYPE_XSKMAP);
|
__uint(type, BPF_MAP_TYPE_XSKMAP);
|
||||||
__uint(max_entries, MAX_SOCKS);
|
__uint(max_entries, MAX_SOCKS);
|
||||||
__uint(key_size, sizeof(int));
|
__uint(key_size, sizeof(int));
|
||||||
__uint(value_size, sizeof(int));
|
__uint(value_size, sizeof(int));
|
||||||
} xsks_map SEC(".maps");
|
} xsks_map SEC(".maps");
|
||||||
|
|
||||||
static unsigned int rr;
|
static unsigned int rr;
|
||||||
|
|
||||||
SEC("xdp_sock") int xdp_sock_prog(struct xdp_md *ctx)
|
SEC("xdp_sock") int xdp_sock_prog(struct xdp_md *ctx)
|
||||||
{
|
{
|
||||||
rr = (rr + 1) & (MAX_SOCKS - 1);
|
rr = (rr + 1) & (MAX_SOCKS - 1);
|
||||||
|
|
||||||
return bpf_redirect_map(&xsks_map, rr, XDP_DROP);
|
return bpf_redirect_map(&xsks_map, rr, XDP_DROP);
|
||||||
}
|
}
|
||||||
|
|
||||||
Note, that since there is only a single set of FILL and COMPLETION
|
Note, that since there is only a single set of FILL and COMPLETION
|
||||||
|
@ -379,7 +379,7 @@ would look like this for the TX path:
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
if (xsk_ring_prod__needs_wakeup(&my_tx_ring))
|
if (xsk_ring_prod__needs_wakeup(&my_tx_ring))
|
||||||
sendto(xsk_socket__fd(xsk_handle), NULL, 0, MSG_DONTWAIT, NULL, 0);
|
sendto(xsk_socket__fd(xsk_handle), NULL, 0, MSG_DONTWAIT, NULL, 0);
|
||||||
|
|
||||||
I.e., only use the syscall if the flag is set.
|
I.e., only use the syscall if the flag is set.
|
||||||
|
|
||||||
|
@ -442,9 +442,9 @@ purposes. The supported statistics are shown below:
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
struct xdp_statistics {
|
struct xdp_statistics {
|
||||||
__u64 rx_dropped; /* Dropped for reasons other than invalid desc */
|
__u64 rx_dropped; /* Dropped for reasons other than invalid desc */
|
||||||
__u64 rx_invalid_descs; /* Dropped due to invalid descriptor */
|
__u64 rx_invalid_descs; /* Dropped due to invalid descriptor */
|
||||||
__u64 tx_invalid_descs; /* Dropped due to invalid descriptor */
|
__u64 tx_invalid_descs; /* Dropped due to invalid descriptor */
|
||||||
};
|
};
|
||||||
|
|
||||||
XDP_OPTIONS getsockopt
|
XDP_OPTIONS getsockopt
|
||||||
|
@ -483,15 +483,15 @@ like this:
|
||||||
.. code-block:: c
|
.. code-block:: c
|
||||||
|
|
||||||
// struct xdp_rxtx_ring {
|
// struct xdp_rxtx_ring {
|
||||||
// __u32 *producer;
|
// __u32 *producer;
|
||||||
// __u32 *consumer;
|
// __u32 *consumer;
|
||||||
// struct xdp_desc *desc;
|
// struct xdp_desc *desc;
|
||||||
// };
|
// };
|
||||||
|
|
||||||
// struct xdp_umem_ring {
|
// struct xdp_umem_ring {
|
||||||
// __u32 *producer;
|
// __u32 *producer;
|
||||||
// __u32 *consumer;
|
// __u32 *consumer;
|
||||||
// __u64 *desc;
|
// __u64 *desc;
|
||||||
// };
|
// };
|
||||||
|
|
||||||
// typedef struct xdp_rxtx_ring RING;
|
// typedef struct xdp_rxtx_ring RING;
|
||||||
|
|
Loading…
Reference in New Issue