"reflect"
"sync"
+ "git.fd.io/govpp.git/core"
"github.com/lunixbochs/struc"
"git.fd.io/govpp.git/adapter"
access sync.RWMutex
}
-// replyHeader represents a common header of each VPP request message.
-type requestHeader struct {
- VlMsgID uint16
- ClientIndex uint32
- Context uint32
-}
-
-// replyHeader represents a common header of each VPP reply message.
-type replyHeader struct {
- VlMsgID uint16
- Context uint32
-}
-
-// otherHeader represents a common header of each VPP reply message.
-type otherHeader struct {
- VlMsgID uint16
-}
-
// defaultReply is a default reply message that mock adapter returns for a request.
type defaultReply struct {
Retval int32
log.Println("ReplyBytes ", replyMsgID, " ", reply.GetMessageName(), " clientId: ", request.ClientID)
buf := new(bytes.Buffer)
- struc.Pack(buf, &replyHeader{VlMsgID: replyMsgID, Context: request.ClientID})
+ struc.Pack(buf, &core.VppReplyHeader{VlMsgID: replyMsgID, Context: request.ClientID})
struc.Pack(buf, reply)
return buf.Bytes(), nil
replyHandler := replyHandlers[i]
buf := bytes.NewReader(data)
- reqHeader := requestHeader{}
+ reqHeader := core.VppRequestHeader{}
struc.Unpack(buf, &reqHeader)
a.access.Lock()
msgID, _ := a.GetMsgID(reply.GetMessageName(), reply.GetCrcString())
buf := new(bytes.Buffer)
if reply.GetMessageType() == api.ReplyMessage {
- struc.Pack(buf, &replyHeader{VlMsgID: msgID, Context: clientID})
+ struc.Pack(buf, &core.VppReplyHeader{VlMsgID: msgID, Context: clientID})
+ } else if reply.GetMessageType() == api.EventMessage {
+ struc.Pack(buf, &core.VppEventHeader{VlMsgID: msgID, Context: clientID})
+ } else if reply.GetMessageType() == api.RequestMessage {
+ struc.Pack(buf, &core.VppRequestHeader{VlMsgID: msgID, Context: clientID})
} else {
- struc.Pack(buf, &requestHeader{VlMsgID: msgID, Context: clientID})
+ struc.Pack(buf, &core.VppOtherHeader{VlMsgID: msgID})
}
struc.Pack(buf, reply)
a.callback(clientID, msgID, buf.Bytes())
// return default reply
buf := new(bytes.Buffer)
msgID := uint16(defaultReplyMsgID)
- struc.Pack(buf, &replyHeader{VlMsgID: msgID, Context: clientID})
+ struc.Pack(buf, &core.VppReplyHeader{VlMsgID: msgID, Context: clientID})
struc.Pack(buf, &defaultReply{})
a.callback(clientID, msgID, buf.Bytes())
}