package nl import ( "unsafe" ) const SizeofGenlmsg = 4 const ( GENL_ID_CTRL = 0x10 GENL_CTRL_VERSION = 2 GENL_CTRL_NAME = "nlctrl" ) const ( GENL_CTRL_CMD_GETFAMILY = 3 ) const ( GENL_CTRL_ATTR_UNSPEC = iota GENL_CTRL_ATTR_FAMILY_ID GENL_CTRL_ATTR_FAMILY_NAME GENL_CTRL_ATTR_VERSION GENL_CTRL_ATTR_HDRSIZE GENL_CTRL_ATTR_MAXATTR GENL_CTRL_ATTR_OPS GENL_CTRL_ATTR_MCAST_GROUPS ) const ( GENL_CTRL_ATTR_OP_UNSPEC = iota GENL_CTRL_ATTR_OP_ID GENL_CTRL_ATTR_OP_FLAGS ) const ( GENL_ADMIN_PERM = 1 << iota GENL_CMD_CAP_DO GENL_CMD_CAP_DUMP GENL_CMD_CAP_HASPOL ) const ( GENL_CTRL_ATTR_MCAST_GRP_UNSPEC = iota GENL_CTRL_ATTR_MCAST_GRP_NAME GENL_CTRL_ATTR_MCAST_GRP_ID ) const ( GENL_GTP_VERSION = 0 GENL_GTP_NAME = "gtp" ) const ( GENL_GTP_CMD_NEWPDP = iota GENL_GTP_CMD_DELPDP GENL_GTP_CMD_GETPDP ) const ( GENL_GTP_ATTR_UNSPEC = iota GENL_GTP_ATTR_LINK GENL_GTP_ATTR_VERSION GENL_GTP_ATTR_TID GENL_GTP_ATTR_PEER_ADDRESS GENL_GTP_ATTR_MS_ADDRESS GENL_GTP_ATTR_FLOW GENL_GTP_ATTR_NET_NS_FD GENL_GTP_ATTR_I_TEI GENL_GTP_ATTR_O_TEI GENL_GTP_ATTR_PAD ) type Genlmsg struct { Command uint8 Version uint8 } func (msg *Genlmsg) Len() int { return SizeofGenlmsg } func DeserializeGenlmsg(b []byte) *Genlmsg { return (*Genlmsg)(unsafe.Pointer(&b[0:SizeofGenlmsg][0])) } func (msg *Genlmsg) Serialize() []byte { return (*(*[SizeofGenlmsg]byte)(unsafe.Pointer(msg)))[:] }