Skip to content

Instantly share code, notes, and snippets.

@lathiat
Created July 28, 2023 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lathiat/7a3cace35bd28413822c362f76ad2f1a to your computer and use it in GitHub Desktop.
Save lathiat/7a3cace35bd28413822c362f76ad2f1a to your computer and use it in GitHub Desktop.
Returns the internal linux bridge flags, was written in order to inspect whether BROPT_MTU_SET_BY_USER was set for a given bridge.
root@mtutest:~# cat bridge_flags.py
#!/usr/local/bin/drgn -k
# Usage: ./bridge_flags.py bridge_interface_name
#
# Returns the internal bridge flags, was written in order to inspect whether
# BROPT_MTU_SET_BY_USER was set for a given bridge.
import sys
from drgn import NULL, Object, cast, container_of, execscript, offsetof, reinterpret, sizeof
from drgn.helpers.common import *
from drgn.helpers.linux import *
from drgn.helpers.linux import net
if len(sys.argv) != 2:
print(f"Usage: {sys.argv[0]} bridge_interface_name")
sys.exit(1)
bridge_intf = net.netdev_get_by_name(prog, sys.argv[1])
bridge = Object(prog, "struct net_bridge", address=net.netdev_priv(bridge_intf))
print(sys.argv[1]+":", decode_enum_type_flags(bridge.options, prog.type('enum net_bridge_opts')))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment