flow_compose(struct dp_packet *p, const struct flow *flow, size_t size)
{
    flow_compose_minimal(p, flow);

    if (size && size < dp_packet_size(p)) {
        return false;
    }

    if (size > dp_packet_size(p)) {
        packet_expand(p, flow, size);
    }

    return true;
}
flow_compose(struct dp_packet *p, const struct flow *flow, size_t size)
{
    flow_compose_minimal(p, flow);

    if (size && size < dp_packet_size(p)) {
        return false;
    }

    if (size > dp_packet_size(p)) {
        packet_expand(p, flow, size);
    }

    return true;
}