From 044aec451b2ddf5ab6aafea146d0878fdea1ebed Mon Sep 17 00:00:00 2001
From: Oliver Herms <oliver.herms@exaring.de>
Date: Fri, 5 Oct 2018 16:47:01 +0200
Subject: [PATCH] Completing decode function

---
 protocols/bmp/packet/decode.go          | 7 ++++++-
 protocols/bmp/packet/route_mirroring.go | 5 +++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/protocols/bmp/packet/decode.go b/protocols/bmp/packet/decode.go
index 2e0a0682..581411d6 100644
--- a/protocols/bmp/packet/decode.go
+++ b/protocols/bmp/packet/decode.go
@@ -84,12 +84,17 @@ func Decode(msg []byte) (Msg, error) {
 	case TerminationMessageType:
 		tm, err := decodeTerminationMessage(buf, ch)
 		if err != nil {
-			return nil, fmt.Errorf("Unable to decide termination message: %v", err)
+			return nil, fmt.Errorf("Unable to decode termination message: %v", err)
 		}
 
 		return tm, nil
 	case RouteMirroringMessageType:
+		rm, err := decodeRouteMirroringMsg(buf, ch)
+		if err != nil {
+			return nil, fmt.Errorf("Unable to decode route mirroring message: %v", err)
+		}
 
+		return rm, nil
 	default:
 		return nil, fmt.Errorf("Unexpected message type: %d", ch.MsgType)
 
diff --git a/protocols/bmp/packet/route_mirroring.go b/protocols/bmp/packet/route_mirroring.go
index 007f1262..e3d013a0 100644
--- a/protocols/bmp/packet/route_mirroring.go
+++ b/protocols/bmp/packet/route_mirroring.go
@@ -12,6 +12,11 @@ type RouteMirroringMsg struct {
 	TLVs          []*InformationTLV
 }
 
+// MsgType returns the type of this message
+func (rm *RouteMirroringMsg) MsgType() uint8 {
+	return rm.CommonHeader.MsgType
+}
+
 func decodeRouteMirroringMsg(buf *bytes.Buffer, ch *CommonHeader) (*RouteMirroringMsg, error) {
 	rm := &RouteMirroringMsg{
 		CommonHeader: ch,
-- 
GitLab