RequestMessage MessageType = iota
// ReplyMessage represents a VPP reply message
ReplyMessage
+ // EventMessage represents a VPP notification event message
+ EventMessage
// OtherMessage represents other VPP message (e.g. counters)
OtherMessage
)
const (
requestMessage messageType = iota // VPP request message
replyMessage // VPP reply message
+ eventMessage // VPP event message
otherMessage // other VPP message
)
if ok {
if j == 2 {
if fieldName == "client_index" {
+ // "client_index" as the second member, this might be an event message or a request
+ msgType = eventMessage
wasClientIndex = true
} else if fieldName == "context" {
// reply needs "context" as the second member
fmt.Fprintln(w, "\treturn api.RequestMessage")
} else if msgType == replyMessage {
fmt.Fprintln(w, "\treturn api.ReplyMessage")
+ } else if msgType == eventMessage {
+ fmt.Fprintln(w, "\treturn api.EventMessage")
} else {
fmt.Fprintln(w, "\treturn api.OtherMessage")
}
+// Code generated by govpp binapi-generator DO NOT EDIT.
// Package vpe represents the VPP binary API of the 'vpe' VPP module.
-// DO NOT EDIT. Generated from 'bin_api/vpe.api.json'
+// Generated from 'bin_api/vpe.api.json'
package vpe
import "git.fd.io/govpp.git/api"
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:])
}