oh->length = htons(buffer->size);
}
-static void
-put_stats__(ovs_be32 xid, uint8_t ofp_type,
- ovs_be16 ofpst_type, ovs_be32 nxst_subtype,
- struct ofpbuf *msg)
+void
+ofputil_put_stats_header(ovs_be32 xid, uint8_t ofp_type,
+ ovs_be16 ofpst_type, ovs_be32 nxst_subtype,
+ struct ofpbuf *msg)
{
if (ofpst_type == htons(OFPST_VENDOR)) {
struct nicira_stats_msg *nsm;
struct ofpbuf *msg;
msg = *bufferp = ofpbuf_new(openflow_len);
- put_stats__(alloc_xid(), OFPT10_STATS_REQUEST,
- htons(ofpst_type), htonl(nxst_subtype), msg);
+ ofputil_put_stats_header(alloc_xid(), OFPT10_STATS_REQUEST,
+ htons(ofpst_type), htonl(nxst_subtype), msg);
ofpbuf_padto(msg, openflow_len);
return msg->data;
static void
put_stats_reply__(const struct ofp_stats_msg *request, struct ofpbuf *msg)
{
+ ovs_be32 nxst_subtype;
+
assert(request->header.type == OFPT10_STATS_REQUEST ||
request->header.type == OFPT10_STATS_REPLY);
- put_stats__(request->header.xid, OFPT10_STATS_REPLY, request->type,
- (request->type != htons(OFPST_VENDOR)
- ? htonl(0)
- : ((const struct nicira_stats_msg *) request)->subtype),
- msg);
+
+ nxst_subtype = (request->type != htons(OFPST_VENDOR)
+ ? htonl(0)
+ : ((const struct nicira_stats_msg *) request)->subtype);
+ ofputil_put_stats_header(request->header.xid, OFPT10_STATS_REPLY,
+ request->type, nxst_subtype, msg);
}
/* Creates a statistics reply message with total length 'openflow_len'
const struct ofp_stats_msg *request,
struct ofpbuf **);
+void ofputil_put_stats_header(ovs_be32 xid, uint8_t ofp_type,
+ ovs_be16 ofpst_type, ovs_be32 nxst_subtype,
+ struct ofpbuf *);
+
void ofputil_start_stats_reply(const struct ofp_stats_msg *request,
struct list *);
struct ofpbuf *ofputil_reserve_stats_reply(size_t len, struct list *);