Skip to content
Snippets Groups Projects
Commit 9d429c89 authored by Martin Teichmann's avatar Martin Teichmann
Browse files

support a program name

parent caf4073d
No related branches found
No related tags found
No related merge requests found
......@@ -58,7 +58,8 @@ def update_elem(fd, key, value, flags):
return bpf(2, "IQQQ", fd, addrof(key), addrof(value), flags)[0]
def prog_load(prog_type, insns, license,
log_level=0, log_size=4096, kern_version=0):
log_level=0, log_size=4096, kern_version=0, flags=0,
name="", ifindex=0, attach_type=0):
if log_level == 0:
log_buf = 0
log_size = 0
......@@ -67,9 +68,10 @@ def prog_load(prog_type, insns, license,
log_buf = addrof(the_logbuf)
license = license.encode("utf8")
try:
fd, _ = bpf(5, "IIQQIIQI", prog_type.value, int(len(insns) // 8),
fd, _ = bpf(5, "IIQQIIQII16sII", prog_type.value, int(len(insns) // 8),
addrof(insns), addrof(license), log_level, log_size,
log_buf, kern_version)
log_buf, kern_version, flags, name.encode("utf8"), ifindex,
attach_type)
except OSError as e:
if log_level != 0:
raise BPFError(e.errno, the_logbuf.value.decode("utf8"))
......
......@@ -732,12 +732,19 @@ class RegisterDesc:
class EBPF:
stack = 0
name = None
def __init__(self, prog_type=0, license="", kern_version=0):
def __init__(self, prog_type=0, license="", kern_version=0,
name=None):
self.opcodes = []
self.prog_type = prog_type
self.license = license
self.kern_version = kern_version
if name is None:
if self.name is None:
self.name = self.__class__.__name__[:16]
else:
self.name = name
self.loaded = False
self.m8 = MemoryDesc(self, Opcode.B)
......@@ -767,7 +774,8 @@ class EBPF:
def load(self, log_level=0, log_size=4096):
ret = bpf.prog_load(self.prog_type, self.assemble(), self.license,
log_level, log_size, self.kern_version)
log_level, log_size, self.kern_version,
name=self.name)
self.loaded = True
for v in self.__class__.__dict__.values():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment