Tizen_4.0 base
[platform/upstream/docker-engine.git] / vendor / github.com / vishvananda / netlink / xfrm.go
1 package netlink
2
3 import (
4         "fmt"
5         "syscall"
6 )
7
8 // Proto is an enum representing an ipsec protocol.
9 type Proto uint8
10
11 const (
12         XFRM_PROTO_ROUTE2    Proto = syscall.IPPROTO_ROUTING
13         XFRM_PROTO_ESP       Proto = syscall.IPPROTO_ESP
14         XFRM_PROTO_AH        Proto = syscall.IPPROTO_AH
15         XFRM_PROTO_HAO       Proto = syscall.IPPROTO_DSTOPTS
16         XFRM_PROTO_COMP      Proto = 0x6c // NOTE not defined on darwin
17         XFRM_PROTO_IPSEC_ANY Proto = syscall.IPPROTO_RAW
18 )
19
20 func (p Proto) String() string {
21         switch p {
22         case XFRM_PROTO_ROUTE2:
23                 return "route2"
24         case XFRM_PROTO_ESP:
25                 return "esp"
26         case XFRM_PROTO_AH:
27                 return "ah"
28         case XFRM_PROTO_HAO:
29                 return "hao"
30         case XFRM_PROTO_COMP:
31                 return "comp"
32         case XFRM_PROTO_IPSEC_ANY:
33                 return "ipsec-any"
34         }
35         return fmt.Sprintf("%d", p)
36 }
37
38 // Mode is an enum representing an ipsec transport.
39 type Mode uint8
40
41 const (
42         XFRM_MODE_TRANSPORT Mode = iota
43         XFRM_MODE_TUNNEL
44         XFRM_MODE_ROUTEOPTIMIZATION
45         XFRM_MODE_IN_TRIGGER
46         XFRM_MODE_BEET
47         XFRM_MODE_MAX
48 )
49
50 func (m Mode) String() string {
51         switch m {
52         case XFRM_MODE_TRANSPORT:
53                 return "transport"
54         case XFRM_MODE_TUNNEL:
55                 return "tunnel"
56         case XFRM_MODE_ROUTEOPTIMIZATION:
57                 return "ro"
58         case XFRM_MODE_IN_TRIGGER:
59                 return "in_trigger"
60         case XFRM_MODE_BEET:
61                 return "beet"
62         }
63         return fmt.Sprintf("%d", m)
64 }
65
66 // XfrmMark represents the mark associated to the state or policy
67 type XfrmMark struct {
68         Value uint32
69         Mask  uint32
70 }
71
72 func (m *XfrmMark) String() string {
73         return fmt.Sprintf("(0x%x,0x%x)", m.Value, m.Mask)
74 }