| package nl |
| |
| import ( |
| "unsafe" |
| ) |
| |
| const ( |
| SizeofXfrmUserpolicyId = 0x40 |
| SizeofXfrmUserpolicyInfo = 0xa8 |
| SizeofXfrmUserTmpl = 0x40 |
| ) |
| |
| // struct xfrm_userpolicy_id { |
| // struct xfrm_selector sel; |
| // __u32 index; |
| // __u8 dir; |
| // }; |
| // |
| |
| type XfrmUserpolicyId struct { |
| Sel XfrmSelector |
| Index uint32 |
| Dir uint8 |
| Pad [3]byte |
| } |
| |
| func (msg *XfrmUserpolicyId) Len() int { |
| return SizeofXfrmUserpolicyId |
| } |
| |
| func DeserializeXfrmUserpolicyId(b []byte) *XfrmUserpolicyId { |
| return (*XfrmUserpolicyId)(unsafe.Pointer(&b[0:SizeofXfrmUserpolicyId][0])) |
| } |
| |
| func (msg *XfrmUserpolicyId) Serialize() []byte { |
| return (*(*[SizeofXfrmUserpolicyId]byte)(unsafe.Pointer(msg)))[:] |
| } |
| |
| // struct xfrm_userpolicy_info { |
| // struct xfrm_selector sel; |
| // struct xfrm_lifetime_cfg lft; |
| // struct xfrm_lifetime_cur curlft; |
| // __u32 priority; |
| // __u32 index; |
| // __u8 dir; |
| // __u8 action; |
| // #define XFRM_POLICY_ALLOW 0 |
| // #define XFRM_POLICY_BLOCK 1 |
| // __u8 flags; |
| // #define XFRM_POLICY_LOCALOK 1 /* Allow user to override global policy */ |
| // /* Automatically expand selector to include matching ICMP payloads. */ |
| // #define XFRM_POLICY_ICMP 2 |
| // __u8 share; |
| // }; |
| |
| type XfrmUserpolicyInfo struct { |
| Sel XfrmSelector |
| Lft XfrmLifetimeCfg |
| Curlft XfrmLifetimeCur |
| Priority uint32 |
| Index uint32 |
| Dir uint8 |
| Action uint8 |
| Flags uint8 |
| Share uint8 |
| Pad [4]byte |
| } |
| |
| func (msg *XfrmUserpolicyInfo) Len() int { |
| return SizeofXfrmUserpolicyInfo |
| } |
| |
| func DeserializeXfrmUserpolicyInfo(b []byte) *XfrmUserpolicyInfo { |
| return (*XfrmUserpolicyInfo)(unsafe.Pointer(&b[0:SizeofXfrmUserpolicyInfo][0])) |
| } |
| |
| func (msg *XfrmUserpolicyInfo) Serialize() []byte { |
| return (*(*[SizeofXfrmUserpolicyInfo]byte)(unsafe.Pointer(msg)))[:] |
| } |
| |
| // struct xfrm_user_tmpl { |
| // struct xfrm_id id; |
| // __u16 family; |
| // xfrm_address_t saddr; |
| // __u32 reqid; |
| // __u8 mode; |
| // __u8 share; |
| // __u8 optional; |
| // __u32 aalgos; |
| // __u32 ealgos; |
| // __u32 calgos; |
| // } |
| |
| type XfrmUserTmpl struct { |
| XfrmId XfrmId |
| Family uint16 |
| Pad1 [2]byte |
| Saddr XfrmAddress |
| Reqid uint32 |
| Mode uint8 |
| Share uint8 |
| Optional uint8 |
| Pad2 byte |
| Aalgos uint32 |
| Ealgos uint32 |
| Calgos uint32 |
| } |
| |
| func (msg *XfrmUserTmpl) Len() int { |
| return SizeofXfrmUserTmpl |
| } |
| |
| func DeserializeXfrmUserTmpl(b []byte) *XfrmUserTmpl { |
| return (*XfrmUserTmpl)(unsafe.Pointer(&b[0:SizeofXfrmUserTmpl][0])) |
| } |
| |
| func (msg *XfrmUserTmpl) Serialize() []byte { |
| return (*(*[SizeofXfrmUserTmpl]byte)(unsafe.Pointer(msg)))[:] |
| } |