github.com/sagernet/netlink@v0.0.0-20240612041022-b9a21c07ac6a/nl/xfrm_monitor_linux.go (about) 1 package nl 2 3 import ( 4 "unsafe" 5 ) 6 7 const ( 8 SizeofXfrmUserExpire = 0xe8 9 ) 10 11 // struct xfrm_user_expire { 12 // struct xfrm_usersa_info state; 13 // __u8 hard; 14 // }; 15 16 type XfrmUserExpire struct { 17 XfrmUsersaInfo XfrmUsersaInfo 18 Hard uint8 19 Pad [7]byte 20 } 21 22 func (msg *XfrmUserExpire) Len() int { 23 return SizeofXfrmUserExpire 24 } 25 26 func DeserializeXfrmUserExpire(b []byte) *XfrmUserExpire { 27 return (*XfrmUserExpire)(unsafe.Pointer(&b[0:SizeofXfrmUserExpire][0])) 28 } 29 30 func (msg *XfrmUserExpire) Serialize() []byte { 31 return (*(*[SizeofXfrmUserExpire]byte)(unsafe.Pointer(msg)))[:] 32 }