adj_index0 = gt0->l2_adj_index;
}
- if (sw_if_index0 == vnet_buffer (b1)->sw_if_index[VLIB_TX])
+ if (sw_if_index1 != vnet_buffer (b1)->sw_if_index[VLIB_TX])
{
- sw_if_index1 = sw_if_index0;
- gt1 = gt0;
- adj_index1 = adj_index0;
- }
- else if (sw_if_index1 != vnet_buffer (b1)->sw_if_index[VLIB_TX])
- {
- sw_if_index1 = vnet_buffer (b1)->sw_if_index[VLIB_TX];
- vnet_hw_interface_t *hi1 =
- vnet_get_sup_hw_interface (vnm, sw_if_index1);
- gt1 = &gm->tunnels[hi1->dev_instance];
- adj_index1 = gt1->l2_adj_index;
+ if (sw_if_index0 == vnet_buffer (b1)->sw_if_index[VLIB_TX])
+ {
+ sw_if_index1 = sw_if_index0;
+ gt1 = gt0;
+ adj_index1 = adj_index0;
+ }
+ else
+ {
+ sw_if_index1 = vnet_buffer (b1)->sw_if_index[VLIB_TX];
+ vnet_hw_interface_t *hi1 =
+ vnet_get_sup_hw_interface (vnm, sw_if_index1);
+ gt1 = &gm->tunnels[hi1->dev_instance];
+ adj_index1 = gt1->l2_adj_index;
+ }
}
vnet_buffer (b0)->ip.adj_index[VLIB_TX] = adj_index0;
vlib_buffer_advance (b0, -sizeof (erspan_t2_t));
erspan_t2_t *h0 = vlib_buffer_get_current (b0);
u32 seq_num = clib_smp_atomic_add (>0->gre_sn->seq_num, 1);
- u64 ver1 = clib_host_to_net_u64 (0x1000000000000000);
+ u64 hdr = clib_host_to_net_u64 (ERSPAN_HDR2);
h0->seq_num = clib_host_to_net_u32 (seq_num);
- h0->t2_u64 = ver1; /* all 0's except ver=1 */
- h0->t2.cos_en_t_session =
+ h0->t2_u64 = hdr;
+ h0->t2.cos_en_t_session |=
clib_host_to_net_u16 (gt0->session_id);
}
if (PREDICT_FALSE (gt1->type == GRE_TUNNEL_TYPE_ERSPAN))
vlib_buffer_advance (b1, -sizeof (erspan_t2_t));
erspan_t2_t *h1 = vlib_buffer_get_current (b1);
u32 seq_num = clib_smp_atomic_add (>1->gre_sn->seq_num, 1);
- u64 ver1 = clib_host_to_net_u64 (0x1000000000000000);
+ u64 hdr = clib_host_to_net_u64 (ERSPAN_HDR2);
h1->seq_num = clib_host_to_net_u32 (seq_num);
- h1->t2_u64 = ver1; /* all 0's except ver=1 */
- h1->t2.cos_en_t_session =
+ h1->t2_u64 = hdr;
+ h1->t2.cos_en_t_session |=
clib_host_to_net_u16 (gt1->session_id);
}
vlib_buffer_advance (b0, -sizeof (erspan_t2_t));
erspan_t2_t *h0 = vlib_buffer_get_current (b0);
u32 seq_num = clib_smp_atomic_add (>0->gre_sn->seq_num, 1);
- u64 ver1 = clib_host_to_net_u64 (0x1000000000000000);
+ u64 hdr = clib_host_to_net_u64 (ERSPAN_HDR2);
h0->seq_num = clib_host_to_net_u32 (seq_num);
- h0->t2_u64 = ver1; /* all 0's except ver=1 */
- h0->t2.cos_en_t_session =
+ h0->t2_u64 = hdr;
+ h0->t2.cos_en_t_session |=
clib_host_to_net_u16 (gt0->session_id);
}