summaryrefslogtreecommitdiffhomepage
path: root/packet
diff options
context:
space:
mode:
Diffstat (limited to 'packet')
-rw-r--r--packet/bgp.go28
-rw-r--r--packet/bgp_test.go8
-rw-r--r--packet/validate_test.go4
3 files changed, 13 insertions, 27 deletions
diff --git a/packet/bgp.go b/packet/bgp.go
index 0e46ae5e..1b07ec33 100644
--- a/packet/bgp.go
+++ b/packet/bgp.go
@@ -743,10 +743,6 @@ func NewIPv6AddrPrefix(length uint8, prefix string) *IPv6AddrPrefix {
}
}
-type WithdrawnRoute struct {
- IPAddrPrefix
-}
-
const (
BGP_RD_TWO_OCTET_AS = iota
BGP_RD_IPV4_ADDRESS
@@ -5279,22 +5275,12 @@ func GetPathAttribute(data []byte) (PathAttributeInterface, error) {
return &PathAttributeUnknown{}, nil
}
-type NLRInfo struct {
- IPAddrPrefix
-}
-
-func NewNLRInfo(length uint8, prefix string) *NLRInfo {
- return &NLRInfo{
- IPAddrPrefix: *NewIPAddrPrefix(length, prefix),
- }
-}
-
type BGPUpdate struct {
WithdrawnRoutesLen uint16
- WithdrawnRoutes []WithdrawnRoute
+ WithdrawnRoutes []*IPAddrPrefix
TotalPathAttributeLen uint16
PathAttributes []PathAttributeInterface
- NLRI []NLRInfo
+ NLRI []*IPAddrPrefix
}
func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
@@ -5316,9 +5302,9 @@ func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
return NewMessageError(eCode, eSubCode, nil, "withdrawn route length exceeds message length")
}
- msg.WithdrawnRoutes = []WithdrawnRoute{}
+ msg.WithdrawnRoutes = make([]*IPAddrPrefix, 0, msg.WithdrawnRoutesLen)
for routelen := msg.WithdrawnRoutesLen; routelen > 0; {
- w := WithdrawnRoute{}
+ w := &IPAddrPrefix{}
err := w.DecodeFromBytes(data)
if err != nil {
return err
@@ -5362,9 +5348,9 @@ func (msg *BGPUpdate) DecodeFromBytes(data []byte) error {
msg.PathAttributes = append(msg.PathAttributes, p)
}
- msg.NLRI = []NLRInfo{}
+ msg.NLRI = make([]*IPAddrPrefix, 0)
for restlen := len(data); restlen > 0; {
- n := NLRInfo{}
+ n := &IPAddrPrefix{}
err := n.DecodeFromBytes(data)
if err != nil {
return err
@@ -5414,7 +5400,7 @@ func (msg *BGPUpdate) Serialize() ([]byte, error) {
return buf, nil
}
-func NewBGPUpdateMessage(withdrawnRoutes []WithdrawnRoute, pathattrs []PathAttributeInterface, nlri []NLRInfo) *BGPMessage {
+func NewBGPUpdateMessage(withdrawnRoutes []*IPAddrPrefix, pathattrs []PathAttributeInterface, nlri []*IPAddrPrefix) *BGPMessage {
return &BGPMessage{
Header: BGPHeader{Type: BGP_MSG_UPDATE},
Body: &BGPUpdate{0, withdrawnRoutes, 0, pathattrs, nlri},
diff --git a/packet/bgp_test.go b/packet/bgp_test.go
index 74fcb510..20664ba0 100644
--- a/packet/bgp_test.go
+++ b/packet/bgp_test.go
@@ -37,9 +37,9 @@ func open() *BGPMessage {
}
func update() *BGPMessage {
- w1 := WithdrawnRoute{*NewIPAddrPrefix(23, "121.1.3.2")}
- w2 := WithdrawnRoute{*NewIPAddrPrefix(17, "100.33.3.0")}
- w := []WithdrawnRoute{w1, w2}
+ w1 := NewIPAddrPrefix(23, "121.1.3.2")
+ w2 := NewIPAddrPrefix(17, "100.33.3.0")
+ w := []*IPAddrPrefix{w1, w2}
aspath1 := []AsPathParamInterface{
NewAsPathParam(2, []uint16{1000}),
@@ -142,7 +142,7 @@ func update() *BGPMessage {
},
},
}
- n := []NLRInfo{*NewNLRInfo(24, "13.2.3.1")}
+ n := []*IPAddrPrefix{NewIPAddrPrefix(24, "13.2.3.1")}
return NewBGPUpdateMessage(w, p, n)
}
diff --git a/packet/validate_test.go b/packet/validate_test.go
index 2f007c44..6309c74d 100644
--- a/packet/validate_test.go
+++ b/packet/validate_test.go
@@ -18,7 +18,7 @@ func bgpupdate() *BGPMessage {
NewPathAttributeNextHop("192.168.1.1"),
}
- n := []NLRInfo{*NewNLRInfo(24, "10.10.10.0")}
+ n := []*IPAddrPrefix{NewIPAddrPrefix(24, "10.10.10.0")}
return NewBGPUpdateMessage(nil, p, n)
}
@@ -35,7 +35,7 @@ func bgpupdateV6() *BGPMessage {
NewPathAttributeAsPath(aspath),
NewPathAttributeMpReachNLRI("1023::", mp_nlri),
}
- return NewBGPUpdateMessage(nil, p, []NLRInfo{})
+ return NewBGPUpdateMessage(nil, p, nil)
}
func Test_Validate_CapV4(t *testing.T) {