mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
Support simple XDP
This commit is contained in:
@ -242,8 +242,17 @@ def process_stmt(func, module, builder, stmt, local_sym_tab, map_sym_tab, did_re
|
||||
builder.ret(ir.Constant(
|
||||
ret_type, stmt.value.args[0].value))
|
||||
did_return = True
|
||||
elif isinstance(stmt.value, ast.Name):
|
||||
if stmt.value.id == "XDP_PASS":
|
||||
builder.ret(ir.Constant(ret_type, 2))
|
||||
did_return = True
|
||||
elif stmt.value.id == "XDP_DROP":
|
||||
builder.ret(ir.Constant(ret_type, 1))
|
||||
did_return = True
|
||||
else:
|
||||
raise ValueError("Failed to evaluate return expression")
|
||||
else:
|
||||
print("Unsupported return value")
|
||||
raise ValueError("Unsupported return value")
|
||||
return did_return
|
||||
|
||||
|
||||
|
||||
@ -7,3 +7,6 @@ def deref(ptr):
|
||||
"dereference a pointer"
|
||||
result = ctypes.cast(ptr, ctypes.POINTER(ctypes.c_void_p)).contents.value
|
||||
return result if result is not None else 0
|
||||
|
||||
XDP_DROP = ctypes.c_int64(1)
|
||||
XDP_PASS = ctypes.c_int64(2)
|
||||
|
||||
Reference in New Issue
Block a user