2021-04-23 SONiC: 数据面遥测
data plane Telemetry数据平面性能探测,不仅仅是INT
前面又介绍过SONiC SAI对INT的支持。INT的想法很好,INT指令随着报文一起被交换机处理,报文从源端到目的端转发的过程中,顺带着把每一跳的时延、缓冲区占有率、队列情况等信息一起捎上,最终节点上把捎带的信息转发给专门的收集服务器,每条流完整转发路径上的信息都可以收集到。INT需要网络设备具备很强的可编程能力,通常支持P4的交换机都能支持INT功能。
SONiC SAI支持更多的数据平面性能探测,不仅仅是INT,还包括丢包报告、队列报告、packet Postcards功能。以下结构定义了SONiC支持的数据平面性能探测功能:
typedef struct _sai_dtel_api_t
{
sai_create_dtel_fn create_dtel;
sai_remove_dtel_fn remove_dtel;
sai_set_dtel_attribute_fn set_dtel_attribute;
sai_get_dtel_attribute_fn get_dtel_attribute;
sai_create_dtel_queue_report_fn create_dtel_queue_report;
sai_remove_dtel_queue_report_fn remove_dtel_queue_report;
sai_set_dtel_queue_report_attribute_fn set_dtel_queue_report_attribute;
sai_get_dtel_queue_report_attribute_fn get_dtel_queue_report_attribute;
sai_create_dtel_int_session_fn create_dtel_int_session;
sai_remove_dtel_int_session_fn remove_dtel_int_session;
sai_set_dtel_int_session_attribute_fn set_dtel_int_session_attribute;
sai_get_dtel_int_session_attribute_fn get_dtel_int_session_attribute;
sai_create_dtel_report_session_fn create_dtel_report_session;
sai_remove_dtel_report_session_fn remove_dtel_report_session;
sai_set_dtel_report_session_attribute_fn set_dtel_report_session_attribute;
sai_get_dtel_report_session_attribute_fn get_dtel_report_session_attribute;
sai_create_dtel_event_fn create_dtel_event;
sai_remove_dtel_event_fn remove_dtel_event;
sai_set_dtel_event_attribute_fn set_dtel_event_attribute;
sai_get_dtel_event_attribute_fn get_dtel_event_attribute;
} sai_dtel_api_t;