feature: add `XDP_FLAGS*` in python lib (#3447)
authorzcy <zcy.chenyue.zhou@gmail.com>
Mon, 24 May 2021 03:31:48 +0000 (11:31 +0800)
committerGitHub <noreply@github.com>
Mon, 24 May 2021 03:31:48 +0000 (20:31 -0700)
  add XDP_FLAG macros in python lib so macro names instead of numeric numbers can be used by tools.

examples/networking/xdp/xdp_drop_count.py
examples/networking/xdp/xdp_macswap_count.py
src/python/bcc/__init__.py

index feed5137f12c444cca50cccb5efaee8c4bc6118c..2ab8faade06e0d0bcaa9f34a73514c062a3d0792 100755 (executable)
@@ -33,12 +33,12 @@ maptype = "percpu_array"
 if len(sys.argv) == 3:
     if "-S" in sys.argv:
         # XDP_FLAGS_SKB_MODE
-        flags |= (1 << 1)
+        flags |= BPF.XDP_FLAGS_SKB_MODE
     if "-H" in sys.argv:
         # XDP_FLAGS_HW_MODE
         maptype = "array"
         offload_device = device
-        flags |= (1 << 3)
+        flags |= BPF.XDP_FLAGS_HW_MODE
 
 mode = BPF.XDP
 #mode = BPF.SCHED_CLS
index c4b3112727ed559a0c5ff02602a97126d3cdbf3e..08afb5fe26775a30b4c753f7762d18900029b6ba 100755 (executable)
@@ -31,7 +31,7 @@ if len(sys.argv) == 2:
 if len(sys.argv) == 3:
     if "-S" in sys.argv:
         # XDP_FLAGS_SKB_MODE
-        flags |= 2 << 0
+        flags |= BPF.XDP_FLAGS_SKB_MODE
 
     if "-S" == sys.argv[1]:
         device = sys.argv[2]
index eabe0a55f9583173b0ee03566c20a3a14d0da0c3..40543dd7bfc25602b112258aa7c3f73e51ce2caa 100644 (file)
@@ -171,6 +171,13 @@ class BPF(object):
     XDP_TX = 3
     XDP_REDIRECT = 4
 
+    # from xdp_flags uapi/linux/if_link.h
+    XDP_FLAGS_UPDATE_IF_NOEXIST = (1 << 0)
+    XDP_FLAGS_SKB_MODE = (1 << 1)
+    XDP_FLAGS_DRV_MODE = (1 << 2)
+    XDP_FLAGS_HW_MODE = (1 << 3)
+    XDP_FLAGS_REPLACE = (1 << 4)
+
     # from bpf_attach_type uapi/linux/bpf.h
     TRACE_FENTRY = 24
     TRACE_FEXIT  = 25