Esempio n. 1
0
size_t
ofl_structs_packet_queue_pack(struct ofl_packet_queue *src, struct ofp_packet_queue *dst, uint32_t port) {
    size_t total_len, len;
    uint8_t *data;
    size_t i;

    total_len = sizeof(struct ofp_packet_queue) +
                ofl_structs_queue_prop_ofp_total_len(src->properties,
                                                     src->properties_num);

    dst->len = htons(total_len);
    memset(dst->pad, 0x00, sizeof(dst->pad));
    dst->port = htonl(port);
    dst->queue_id = htonl(src->queue_id);

    data = (uint8_t *)dst + sizeof(struct ofp_packet_queue);

    for (i=0; i<src->properties_num; i++) {
        len = ofl_structs_queue_prop_pack(src->properties[i],
                                        (struct ofp_queue_prop_header *)data);
        data += len;
    }

    return total_len;
}
Esempio n. 2
0
size_t
ofl_structs_packet_queue_ofp_len(struct ofl_packet_queue *queue) {
    return sizeof(struct ofp_packet_queue) +
           ofl_structs_queue_prop_ofp_total_len(queue->properties,
                                                queue->properties_num);
}