void
bundle_to_nxast(const struct ofpact_bundle *bundle, struct ofpbuf *openflow)
{
- int slaves_len = ROUND_UP(bundle->n_slaves, OFP_ACTION_ALIGN);
+ int slaves_len = ROUND_UP(2 * bundle->n_slaves, OFP_ACTION_ALIGN);
struct nx_action_bundle *nab;
ovs_be16 *slaves;
size_t i;
uint16_t slave_port;
char *slave;
- slave = strtok_r(NULL, ", [", save_ptr);
+ slave = strtok_r(NULL, ", []", save_ptr);
if (!slave || bundle->n_slaves >= BUNDLE_MAX_SLAVES) {
break;
}
- slave_port = atoi(slave);
+ if (!ofputil_port_from_string(slave, &slave_port)) {
+ ovs_fatal(0, "%s: bad port number", slave);
+ }
ofpbuf_put(ofpacts, &slave_port, sizeof slave_port);
bundle = ofpacts->l2;
ds_put_cstr(s, ",");
}
- ds_put_format(s, "%"PRIu16, bundle->slaves[i]);
+ ofputil_format_port(bundle->slaves[i], s);
}
ds_put_cstr(s, ")");