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  }