summaryrefslogtreecommitdiffhomepage
path: root/packet/bgp.go
diff options
context:
space:
mode:
Diffstat (limited to 'packet/bgp.go')
-rw-r--r--packet/bgp.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/packet/bgp.go b/packet/bgp.go
index 977ca167..86d63987 100644
--- a/packet/bgp.go
+++ b/packet/bgp.go
@@ -794,6 +794,21 @@ func (r *IPv6AddrPrefix) AFI() uint16 {
return AFI_IP6
}
+func (r *IPv6AddrPrefix) String() string {
+ isZero := func(p net.IP) bool {
+ for i := 0; i < len(p); i++ {
+ if p[i] != 0 {
+ return false
+ }
+ }
+ return true
+ }(r.Prefix[0:10])
+ if isZero && r.Prefix[10] == 0xff && r.Prefix[11] == 0xff {
+ return fmt.Sprintf("::ffff:%s/%d", r.Prefix.String(), r.Length)
+ }
+ return fmt.Sprintf("%s/%d", r.Prefix.String(), r.Length)
+}
+
func NewIPv6AddrPrefix(length uint8, prefix string) *IPv6AddrPrefix {
return &IPv6AddrPrefix{
IPAddrPrefix{