VLIB_BUFFER_TRACE_TRAJECTORY宏的作用

VLIB_BUFFER_TRACE_TRAJECTORYmbufmbufnodenodeindex:

,,,,如果(VLIB_BUFFER_TRACE_TRAJECTORY,,帧)

,,,,{

,,,,,,int我;

,,,,,,int log_index;

,,,,,,u32 *的;

,,,,,,从=vlib_frame_vector_args(帧);

,,,,,,(我=0;我& lt;框架→n_vectors;我+ +)

,,,,,,{

,,,,,,,,vlib_buffer_t * b=vlib_get_buffer (vm,从[我]);

,,,,,,,,断言(b→pre_data [0] & lt;32);

,,,,,,,,log_index=b→pre_data [0] + + + 1,

,,,,,,,,b→pre_data [log_index]=节点→node_index;

,,,,,,}

,,,,,,n=节点→函数(vm、节点坐标系);

,,,,节点}

空白vlib_dump_context_trace (vlib_main_t * vm, u32 bi)

{

,,, vlib_node_main_t * vnm=, vm→node_main;

,,, vlib_buffer_t * b;

,,,与我,n;

,

,,,如果(VLIB_BUFFER_TRACE_TRAJECTORY)

,,,{

,,,,,,, b=vlib_get_buffer (vm, bi);

,,,,,,, n=b→pre_data [0];

,

,,,,,,, fformat (stderr,“上下文跟踪bi % d b 0 x %拉兹,访问% d \ n”,

,,,,,,,,,,,,,,,bi、b、n);

,

,,,,,,,如果(n==0 | | n比;20)

,,,,,,, {

,,,,,,,,,,, fformat (stderr,“n不合理\ n”);

,,,,,,,,,,,回报;

,,,,,,,}

,

,

,,,,,,, (i=0;我& lt;n;我+ +)

,,,,,,, {

,,,,,,,,,,, u32 node_index;

,

,,,,,,,,,,, node_index=b→pre_data (i + 1);

,

,,,,,,,,,,,如果(node_index祝辞vec_len (vnm→节点)

,,,,,,,,,,, {

,,,,,,,,,,,,,,,fformat (stderr,“跳过bogusnode指数% d \ n”, node_index);

,,,,,,,,,,,,,,,继续;

,,,,,,,,,,,}

,

,,,,,,,,,,, fformat (stderr,“% v (% d) \ n”, vnm→节点(node_index)→名称,

,,,,,,,,,,,,,,,,,,,node_index);

,,,,,,,}

,,,}

,,,其他的

,,,{

,,,,,,, fformat (stderr,

,,,,,,,,,,,,,,,“在vlib/缓冲区。h, # define VLIB_BUFFER_TRACE_TRAJECTORY 1 \ n”);

,,,}}


VLIB_BUFFER_TRACE_TRAJECTORY宏的作用