From 8b66677c2382a8e739d437621de4473d5ec0b9f1 Mon Sep 17 00:00:00 2001 From: Rastislav Szabo Date: Mon, 25 Sep 2017 21:58:24 +0200 Subject: generator fix - add new message type Change-Id: I5e2b312e086d18eb7fa3f349750caea20005f530 Signed-off-by: Rastislav Szabo --- core/msg_codec.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'core/msg_codec.go') diff --git a/core/msg_codec.go b/core/msg_codec.go index 5614a7e..c72b7f3 100644 --- a/core/msg_codec.go +++ b/core/msg_codec.go @@ -43,6 +43,12 @@ type vppReplyHeader struct { Context uint32 } +// vppEventHeader struct contains header fields implemented by all VPP events. +type vppEventHeader struct { + VlMsgID uint16 + Context uint32 +} + // vppOtherHeader struct contains header fields implemented by other VPP messages (not requests nor replies). type vppOtherHeader struct { VlMsgID uint16 @@ -51,6 +57,7 @@ type vppOtherHeader struct { const ( vppRequestHeaderSize = 10 // size of a VPP request header vppReplyHeaderSize = 6 // size of a VPP reply header + vppEventHeaderSize = 6 // size of a VPP event header vppOtherHeaderSize = 2 // size of the header of other VPP messages ) @@ -68,6 +75,8 @@ func (*MsgCodec) EncodeMsg(msg api.Message, msgID uint16) ([]byte, error) { header = &vppRequestHeader{VlMsgID: msgID} } else if msg.GetMessageType() == api.ReplyMessage { header = &vppReplyHeader{VlMsgID: msgID} + } else if msg.GetMessageType() == api.EventMessage { + header = &vppEventHeader{VlMsgID: msgID} } else { header = &vppOtherHeader{VlMsgID: msgID} } @@ -109,6 +118,8 @@ func (*MsgCodec) DecodeMsg(data []byte, msg api.Message) error { header = &vppRequestHeader{} } else if msg.GetMessageType() == api.ReplyMessage { header = &vppReplyHeader{} + } else if msg.GetMessageType() == api.EventMessage { + header = &vppEventHeader{} } else { header = &vppOtherHeader{} } @@ -128,6 +139,8 @@ func (*MsgCodec) DecodeMsg(data []byte, msg api.Message) error { buf = bytes.NewReader(data[vppRequestHeaderSize:]) } else if msg.GetMessageType() == api.ReplyMessage { buf = bytes.NewReader(data[vppReplyHeaderSize:]) + } else if msg.GetMessageType() == api.EventMessage { + buf = bytes.NewReader(data[vppEventHeaderSize:]) } else { buf = bytes.NewReader(data[vppOtherHeaderSize:]) } -- cgit 1.2.3-korg