...
1 package netlink
2
3 import (
4 "strings"
5 )
6
7
8 type Protinfo struct {
9 Hairpin bool
10 Guard bool
11 FastLeave bool
12 RootBlock bool
13 Learning bool
14 Flood bool
15 ProxyArp bool
16 ProxyArpWiFi bool
17 Isolated bool
18 NeighSuppress bool
19 }
20
21
22 func (prot *Protinfo) String() string {
23 if prot == nil {
24 return "<nil>"
25 }
26
27 var boolStrings []string
28 if prot.Hairpin {
29 boolStrings = append(boolStrings, "Hairpin")
30 }
31 if prot.Guard {
32 boolStrings = append(boolStrings, "Guard")
33 }
34 if prot.FastLeave {
35 boolStrings = append(boolStrings, "FastLeave")
36 }
37 if prot.RootBlock {
38 boolStrings = append(boolStrings, "RootBlock")
39 }
40 if prot.Learning {
41 boolStrings = append(boolStrings, "Learning")
42 }
43 if prot.Flood {
44 boolStrings = append(boolStrings, "Flood")
45 }
46 if prot.ProxyArp {
47 boolStrings = append(boolStrings, "ProxyArp")
48 }
49 if prot.ProxyArpWiFi {
50 boolStrings = append(boolStrings, "ProxyArpWiFi")
51 }
52 if prot.Isolated {
53 boolStrings = append(boolStrings, "Isolated")
54 }
55 if prot.NeighSuppress {
56 boolStrings = append(boolStrings, "NeighSuppress")
57 }
58 return strings.Join(boolStrings, " ")
59 }
60
61 func boolToByte(x bool) []byte {
62 if x {
63 return []byte{1}
64 }
65 return []byte{0}
66 }
67
68 func byteToBool(x byte) bool {
69 return uint8(x) != 0
70 }
71
View as plain text