- int spi_size = (p->protocol_id == IKEV2_PROTOCOL_ESP) ? 4 : 0;
- pr_data = vec_new(u8, sizeof(ike_sa_proposal_data_t) + spi_size);
- prop = (ike_sa_proposal_data_t *) pr_data;
- prop->last_or_more = proposals - p + 1 < vec_len(proposals) ? 2 : 0;
- prop->protocol_id = p->protocol_id;
- prop->proposal_num = p->proposal_num;
- prop->spi_size = spi_size;
- prop->num_transforms = vec_len(p->transforms);
-
- if (spi_size)
- prop->spi[0] = clib_host_to_net_u32(p->spi);
-
- DBG_PLD("proposal num %u protocol_id %u last_or_more %u spi_size %u%s%U",
- prop->proposal_num, prop->protocol_id, prop->last_or_more,
- prop->spi_size, prop->spi_size ? " spi_data " : "",
- format_hex_bytes, prop->spi, prop->spi_size);
-
- vec_foreach(t, p->transforms)
- {
- vec_add2(tr_data, tmp, sizeof(*tr) + vec_len(t->attrs));
- tr = (ike_sa_transform_data_t *) tmp;
- tr->last_or_more = ((t - p->transforms) + 1 < vec_len(p->transforms)) ? 3 : 0;
- tr->transform_type = t->type;
- tr->transform_id = clib_host_to_net_u16(t->transform_id);
- tr->transform_len = clib_host_to_net_u16(sizeof(*tr) + vec_len(t->attrs));
-
- if (vec_len(t->attrs) > 0)
- memcpy(tr->attributes, t->attrs, vec_len(t->attrs));
-
- DBG_PLD("transform type %U transform_id %u last_or_more %u attr_size %u%s%U",
- format_ikev2_transform_type, tr->transform_type,
- t->transform_id, tr->last_or_more, vec_len(t->attrs),
- vec_len(t->attrs) ? " attrs " : "",
- format_hex_bytes, tr->attributes, vec_len(t->attrs));
- }
-
- prop->proposal_len = clib_host_to_net_u16(vec_len(tr_data) + vec_len(pr_data));
- ikev2_payload_add_data(c, pr_data);
- ikev2_payload_add_data(c, tr_data);
- vec_free(pr_data);
- vec_free(tr_data);
+ vec_add2 (tr_data, tmp, sizeof (*tr) + vec_len (t->attrs));
+ tr = (ike_sa_transform_data_t *) tmp;
+ tr->last_or_more =
+ ((t - p->transforms) + 1 < vec_len (p->transforms)) ? 3 : 0;
+ tr->transform_type = t->type;
+ tr->transform_id = clib_host_to_net_u16 (t->transform_id);
+ tr->transform_len =
+ clib_host_to_net_u16 (sizeof (*tr) + vec_len (t->attrs));
+
+ if (vec_len (t->attrs) > 0)
+ clib_memcpy (tr->attributes, t->attrs, vec_len (t->attrs));
+
+ DBG_PLD
+ ("transform type %U transform_id %u last_or_more %u attr_size %u%s%U",
+ format_ikev2_transform_type, tr->transform_type, t->transform_id,
+ tr->last_or_more, vec_len (t->attrs),
+ vec_len (t->attrs) ? " attrs " : "", format_hex_bytes,
+ tr->attributes, vec_len (t->attrs));