logger "github.com/Sirupsen/logrus"
"github.com/lunixbochs/struc"
- "gerrit.fd.io/r/govpp/api"
+ "git.fd.io/govpp.git/api"
)
// MsgCodec provides encoding and decoding functionality of `api.Message` structs into/from
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
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
)
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}
}
header = &vppRequestHeader{}
} else if msg.GetMessageType() == api.ReplyMessage {
header = &vppReplyHeader{}
+ } else if msg.GetMessageType() == api.EventMessage {
+ header = &vppEventHeader{}
} else {
header = &vppOtherHeader{}
}
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:])
}