论文 ClickP4: Towards Modular Programming of P4 小结

当前P4存在的问题(ClickP4为解决的问题)

  • 1.随着P4程序的规模和复杂性的增加,从零开始开发单片P4程序容易出错,需要相当多的时间和精力去解决,所以网络政策的多样性和动态性使得运营商为了满足要求,组合所需功能变得复杂。
  • 2.在P4计划的部署之后,功能的编排很难根据新的需求进行修改。这种不可靠的编排不能满足在运行时需要新的业务流程的新策略,从而潜在地缩小了支持的网络策略。
  • 3.管理P4程序的复杂性。为了充分利用可编程数据平台的功能,运营商需要对部署的P4程序有一个清楚的了解,P4的灵活性反而使操作员对表的管理更加复杂。
  • 4.不同的P4程序可以配置不同的可编程设备,这进一步增加了使用大量可编程设备管理网络的难度。

设计 ClickP4 的两个原则

  • Decomposition of P4 programs: ClickP4通过将单片程序分解为可重用的模块并将功能组合推迟到运行时从而来缓解开发P4程序的复杂性。开发P4程序时,运营商不用担心如何组成P4程序。此外,分解还可以提高P4程序的代码重用和增量重新编程。
  • Dynamic orchestration of features: ClickP4通过动态编排模块为P4程序提供更多的灵活性,并帮助操作员在同一可编程基板上组成流量特定的P4程序。ClickP4中,集合了各种功能,并可在运行时分配给不同的功能。此外,为了方便管理P4程序,ClickP4提供了易于使用的原语,使操作员能够对功能进行排序。

ClickP4的架构

ClickP4的设计

ClickP4的设计有两个方面

  • Programming model:第一部分,为P4程序设计,旨在简化P4程序的开发。在ClickP4中,P4程序员只需要开发分离的模块而不是单片机程序,然后使用这些模块来编写复杂的P4程序。第二部分,为可管理可编程网络的运营商设计,ClickP4提供了一套高级编排描述原语。ClickP4协调器可以解释这些编排描述并将其转换为低级管理规则。

以下是描述两种不同特征编排的两个例子

  • Data plane architecture:在管道开始时,管理组件,初始化程序,提供每一个包一个标记。标记标识哪些功能可以处理第一个执行循环中的数据包。在ClickP4中,数据包只能顺时针穿过逻辑特征环,但某些策略可能需要模块的逆时针执行顺序。位于ClickP4流水线末端的回卷器可以倒带数据包,以使数据包能够在需要的时候逆时针穿过某些模块。

附录

posted @ 2017-08-24 16:00  Smnouy  阅读(465)  评论(3编辑  收藏  举报