Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / vishvananda / netlink / nl / xfrm_policy_linux.go
1 package nl
2
3 import (
4         "unsafe"
5 )
6
7 const (
8         SizeofXfrmUserpolicyId   = 0x40
9         SizeofXfrmUserpolicyInfo = 0xa8
10         SizeofXfrmUserTmpl       = 0x40
11 )
12
13 // struct xfrm_userpolicy_id {
14 //   struct xfrm_selector    sel;
15 //   __u32       index;
16 //   __u8        dir;
17 // };
18 //
19
20 type XfrmUserpolicyId struct {
21         Sel   XfrmSelector
22         Index uint32
23         Dir   uint8
24         Pad   [3]byte
25 }
26
27 func (msg *XfrmUserpolicyId) Len() int {
28         return SizeofXfrmUserpolicyId
29 }
30
31 func DeserializeXfrmUserpolicyId(b []byte) *XfrmUserpolicyId {
32         return (*XfrmUserpolicyId)(unsafe.Pointer(&b[0:SizeofXfrmUserpolicyId][0]))
33 }
34
35 func (msg *XfrmUserpolicyId) Serialize() []byte {
36         return (*(*[SizeofXfrmUserpolicyId]byte)(unsafe.Pointer(msg)))[:]
37 }
38
39 // struct xfrm_userpolicy_info {
40 //   struct xfrm_selector    sel;
41 //   struct xfrm_lifetime_cfg  lft;
42 //   struct xfrm_lifetime_cur  curlft;
43 //   __u32       priority;
44 //   __u32       index;
45 //   __u8        dir;
46 //   __u8        action;
47 // #define XFRM_POLICY_ALLOW 0
48 // #define XFRM_POLICY_BLOCK 1
49 //   __u8        flags;
50 // #define XFRM_POLICY_LOCALOK 1 /* Allow user to override global policy */
51 //   /* Automatically expand selector to include matching ICMP payloads. */
52 // #define XFRM_POLICY_ICMP  2
53 //   __u8        share;
54 // };
55
56 type XfrmUserpolicyInfo struct {
57         Sel      XfrmSelector
58         Lft      XfrmLifetimeCfg
59         Curlft   XfrmLifetimeCur
60         Priority uint32
61         Index    uint32
62         Dir      uint8
63         Action   uint8
64         Flags    uint8
65         Share    uint8
66         Pad      [4]byte
67 }
68
69 func (msg *XfrmUserpolicyInfo) Len() int {
70         return SizeofXfrmUserpolicyInfo
71 }
72
73 func DeserializeXfrmUserpolicyInfo(b []byte) *XfrmUserpolicyInfo {
74         return (*XfrmUserpolicyInfo)(unsafe.Pointer(&b[0:SizeofXfrmUserpolicyInfo][0]))
75 }
76
77 func (msg *XfrmUserpolicyInfo) Serialize() []byte {
78         return (*(*[SizeofXfrmUserpolicyInfo]byte)(unsafe.Pointer(msg)))[:]
79 }
80
81 // struct xfrm_user_tmpl {
82 //   struct xfrm_id    id;
83 //   __u16     family;
84 //   xfrm_address_t    saddr;
85 //   __u32     reqid;
86 //   __u8      mode;
87 //   __u8      share;
88 //   __u8      optional;
89 //   __u32     aalgos;
90 //   __u32     ealgos;
91 //   __u32     calgos;
92 // }
93
94 type XfrmUserTmpl struct {
95         XfrmId   XfrmId
96         Family   uint16
97         Pad1     [2]byte
98         Saddr    XfrmAddress
99         Reqid    uint32
100         Mode     uint8
101         Share    uint8
102         Optional uint8
103         Pad2     byte
104         Aalgos   uint32
105         Ealgos   uint32
106         Calgos   uint32
107 }
108
109 func (msg *XfrmUserTmpl) Len() int {
110         return SizeofXfrmUserTmpl
111 }
112
113 func DeserializeXfrmUserTmpl(b []byte) *XfrmUserTmpl {
114         return (*XfrmUserTmpl)(unsafe.Pointer(&b[0:SizeofXfrmUserTmpl][0]))
115 }
116
117 func (msg *XfrmUserTmpl) Serialize() []byte {
118         return (*(*[SizeofXfrmUserTmpl]byte)(unsafe.Pointer(msg)))[:]
119 }