pppoe0 = (pppoe_header_t*)(vlan0+1);
if( type0 != ETHERNET_TYPE_PPPOE_DISCOVERY && type0 != ETHERNET_TYPE_PPPOE_SESSION ) {
error0 = PPPOE_ERROR_BAD_VER_TYPE;
- next0 = PPPOE_INPUT_NEXT_DROP;
- goto trace0;
+ result0.fields.session_index =
+ ~0; // avoid tracing random data
+ next0 = PPPOE_INPUT_NEXT_DROP;
+ goto trace0;
}
} else {
pppoe0 = (pppoe_header_t*)(h0+1);
vlib_buffer_advance(b0, sizeof(*h0)+sizeof(*vlan0));
error0 = PPPOE_ERROR_CONTROL_PLANE;
next0 = PPPOE_INPUT_NEXT_CP_INPUT;
+ result0.fields.session_index = ~0;
goto trace0;
}
sw_if_index0 = t0->sw_if_index;
len0 = vlib_buffer_length_in_chain (vm, b0);
+ vnet_buffer(b0)->sw_if_index[VLIB_RX] = sw_if_index0;
pkts_decapsulated ++;
stats_n_packets += 1;
pppoe1 = (pppoe_header_t*)(vlan1+1);
if( type1 != ETHERNET_TYPE_PPPOE_DISCOVERY && type1 != ETHERNET_TYPE_PPPOE_SESSION ) {
error1 = PPPOE_ERROR_BAD_VER_TYPE;
- next1 = PPPOE_INPUT_NEXT_DROP;
- goto trace1;
+ result1.fields.session_index =
+ ~0; // avoid tracing random data
+ next1 = PPPOE_INPUT_NEXT_DROP;
+ goto trace1;
}
} else {
pppoe1 = (pppoe_header_t*)(h1+1);
vlib_buffer_advance(b1, sizeof(*h1)+sizeof(*vlan1));
error1 = PPPOE_ERROR_CONTROL_PLANE;
next1 = PPPOE_INPUT_NEXT_CP_INPUT;
+ result1.fields.session_index = ~0;
goto trace1;
}
sw_if_index1 = t1->sw_if_index;
len1 = vlib_buffer_length_in_chain (vm, b1);
+ vnet_buffer(b1)->sw_if_index[VLIB_RX] = sw_if_index1;
pkts_decapsulated ++;
stats_n_packets += 1;
pppoe0 = (pppoe_header_t*)(vlan0+1);
if( type0 != ETHERNET_TYPE_PPPOE_DISCOVERY && type0 != ETHERNET_TYPE_PPPOE_SESSION ) {
error0 = PPPOE_ERROR_BAD_VER_TYPE;
- next0 = PPPOE_INPUT_NEXT_DROP;
- goto trace00;
+ result0.fields.session_index =
+ ~0; // avoid tracing random data
+ next0 = PPPOE_INPUT_NEXT_DROP;
+ goto trace00;
}
} else {
pppoe0 = (pppoe_header_t*)(h0+1);
vlib_buffer_advance(b0, sizeof(*h0)+sizeof(*vlan0));
error0 = PPPOE_ERROR_CONTROL_PLANE;
next0 = PPPOE_INPUT_NEXT_CP_INPUT;
+ result0.fields.session_index = ~0;
goto trace00;
}
sw_if_index0 = t0->sw_if_index;
len0 = vlib_buffer_length_in_chain (vm, b0);
+ vnet_buffer(b0)->sw_if_index[VLIB_RX] = sw_if_index0;
pkts_decapsulated ++;
stats_n_packets += 1;
.format_trace = format_pppoe_rx_trace,
};
-/* *INDENT-OFF* */
VNET_FEATURE_INIT (pppoe_input_node, static) =
{
.arc_name = "device-input",
.node_name = "pppoe-input",
.runs_before = VNET_FEATURES ("ethernet-input"),
};
-/* *INDENT-ON */