root/tools/testing/selftests/bpf/progs/test_adjust_tail.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. SEC

   1 /* SPDX-License-Identifier: GPL-2.0
   2  * Copyright (c) 2018 Facebook
   3  *
   4  * This program is free software; you can redistribute it and/or
   5  * modify it under the terms of version 2 of the GNU General Public
   6  * License as published by the Free Software Foundation.
   7  */
   8 #include <linux/bpf.h>
   9 #include <linux/if_ether.h>
  10 #include "bpf_helpers.h"
  11 
  12 int _version SEC("version") = 1;
  13 
  14 SEC("xdp_adjust_tail")
  15 int _xdp_adjust_tail(struct xdp_md *xdp)
  16 {
  17         void *data_end = (void *)(long)xdp->data_end;
  18         void *data = (void *)(long)xdp->data;
  19         int offset = 0;
  20 
  21         if (data_end - data == 54)
  22                 offset = 256;
  23         else
  24                 offset = 20;
  25         if (bpf_xdp_adjust_tail(xdp, 0 - offset))
  26                 return XDP_DROP;
  27         return XDP_TX;
  28 }
  29 
  30 char _license[] SEC("license") = "GPL";

/* [<][>][^][v][top][bottom][index][help] */