8 // Proto is an enum representing an ipsec protocol.
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
20 func (p Proto) String() string {
22 case XFRM_PROTO_ROUTE2:
32 case XFRM_PROTO_IPSEC_ANY:
35 return fmt.Sprintf("%d", p)
38 // Mode is an enum representing an ipsec transport.
42 XFRM_MODE_TRANSPORT Mode = iota
44 XFRM_MODE_ROUTEOPTIMIZATION
50 func (m Mode) String() string {
52 case XFRM_MODE_TRANSPORT:
54 case XFRM_MODE_TUNNEL:
56 case XFRM_MODE_ROUTEOPTIMIZATION:
58 case XFRM_MODE_IN_TRIGGER:
63 return fmt.Sprintf("%d", m)
66 // XfrmMark represents the mark associated to the state or policy
67 type XfrmMark struct {
72 func (m *XfrmMark) String() string {
73 return fmt.Sprintf("(0x%x,0x%x)", m.Value, m.Mask)