Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

Vinllen Chen


To be a better coder

Broadview功能简介

  Broadcom最近推出了他们的新产品broadview,提供telemetry的监控方式,将问题定位至芯片级别,其架构如下:
architechture.png
  在交换机侧加入agent,提供对芯片级别的操作:包括信息采集以及报文注入等,北向提供REST接口提供信息交互,控制器侧提供操作的具体逻辑。其官网介绍的功能如下:

  • Buffer statistics tracking
  • Packet tracing and injection
  • Black hole detection
  • Performance metrics for BST
  • Drop counters due to congestion
  • Support for StrataXGS and StrataDNX silicon families
  • Reference implementation for applications: OpenStack, OpenDaylight, Ganglia
  • Network level path tracing
  • Provisioning optimized network fabric for storage traffic

我将之总结为以下4大功能。

1. Buffer统计跟踪 (Buffer Statistics Tracking, BST)

  BST功能能够监控芯片buffer的使用情况,broadview agent可以主动向控制器上报设备的buffer统计信息(asynchronously mode),也可以根据控制器的请求发送buffer统计信息(polled mode)。BST目前主要有以下三大功能:

1.1 buffer使用情况追踪

  包括当前情况和峰值的追踪,支持polled和asynchronously两种获取方式。BST功能能够追踪当前的buffer使用情况,也可以追踪buffer使用的峰值,可以在每次report的时候,返回最近一次的buffer利用率峰值。BST能够追踪的buffer使用类别有很多种,可以根据配置选择一个或者多个进行追踪。

1.2 buffer使用监控通知(triger report)

  可以针对每类buffer使用情况设置threshold,如果设置了threshold,当该类buffer的使用超过threshold的时候,并且对设备使能了异步(asynchronous)发送的配置,agent会主动发送notification report通知控制器。

1.3 端口统计

  BST功能能够对最拥塞的若干个端口情况进行统计,并且能够对端口,队列等进行进行丢包统计。

2. Packet Trace (PT)

  当数据包进入交换机时,它会被处理并在一个或多个目标端口上转发。通常,中间分组处理步骤的结果是不可见的。数据包跟踪功能提供关于这些中间过程的详细信息,如LAG和ECMP的出口散列信息。
  数据包跟踪功能(Packet Trace)允许客户端将数据包注入入口,然后将其处理成像在其中一个前面板端口上接收一样。数据包跟踪功能记录内部转发状态。这可以用于诊断意外错误或作为离线调试工具。
  总结来说就是,控制器侧构造报文,给定入端口,下发给broadview-agent,broadview-agent进行CPU发包模拟,指示报文的转发状态,包括从哪个端口进来,有哪些ecmp或者lacg组,从哪个ecmp端口出去,是否转发成功的结果。

3. Live-PT

  与PT功能类似,预下发五元组对指定流进行监控,对于所有经过交换机的匹配报文,都会输出一份profile文件上到控制器,指示报文的转发状态,包括从哪个端口进来,有哪些ecmp或者lacg组,从哪个ecmp端口出去,以及整个报文内容。与PT的不同之处在于PT是注入报文监控,而Live-PT是对实时流量进行监控。

4. Black-hole detect

  提供对黑洞的检测,此处不做详细介绍。

参考

https://www.broadcom.com/products/ethernet-connectivity/software/broadview


About the author

vinllen chen

Beijing, China

格物致知


Discussions

comments powered by Disqus