...
1 package netlink
2
3 import (
4 "fmt"
5
6 "golang.org/x/sys/unix"
7 )
8
9
10 type Proto uint8
11
12 const (
13 XFRM_PROTO_ROUTE2 Proto = unix.IPPROTO_ROUTING
14 XFRM_PROTO_ESP Proto = unix.IPPROTO_ESP
15 XFRM_PROTO_AH Proto = unix.IPPROTO_AH
16 XFRM_PROTO_HAO Proto = unix.IPPROTO_DSTOPTS
17 XFRM_PROTO_COMP Proto = unix.IPPROTO_COMP
18 XFRM_PROTO_IPSEC_ANY Proto = unix.IPPROTO_RAW
19 )
20
21 func (p Proto) String() string {
22 switch p {
23 case XFRM_PROTO_ROUTE2:
24 return "route2"
25 case XFRM_PROTO_ESP:
26 return "esp"
27 case XFRM_PROTO_AH:
28 return "ah"
29 case XFRM_PROTO_HAO:
30 return "hao"
31 case XFRM_PROTO_COMP:
32 return "comp"
33 case XFRM_PROTO_IPSEC_ANY:
34 return "ipsec-any"
35 }
36 return fmt.Sprintf("%d", p)
37 }
38
39
40 type Mode uint8
41
42 const (
43 XFRM_MODE_TRANSPORT Mode = iota
44 XFRM_MODE_TUNNEL
45 XFRM_MODE_ROUTEOPTIMIZATION
46 XFRM_MODE_IN_TRIGGER
47 XFRM_MODE_BEET
48 XFRM_MODE_MAX
49 )
50
51 func (m Mode) String() string {
52 switch m {
53 case XFRM_MODE_TRANSPORT:
54 return "transport"
55 case XFRM_MODE_TUNNEL:
56 return "tunnel"
57 case XFRM_MODE_ROUTEOPTIMIZATION:
58 return "ro"
59 case XFRM_MODE_IN_TRIGGER:
60 return "in_trigger"
61 case XFRM_MODE_BEET:
62 return "beet"
63 }
64 return fmt.Sprintf("%d", m)
65 }
66
67
68 type XfrmMark struct {
69 Value uint32
70 Mask uint32
71 }
72
73 func (m *XfrmMark) String() string {
74 return fmt.Sprintf("(0x%x,0x%x)", m.Value, m.Mask)
75 }
76
View as plain text