The MPLS protocol, traditionally focused on packet forwarding using labels, has evolved to include advanced mechanisms such as Service Function Chaining (SFC), Alternate-Marking Method (AMM), and in-situ OAM (IOAM). However, many of those mechanisms require extensions to existing specifications in MPLS making them difficult to deploy. To bridge this gap, the IETF MPLS WG proposed the MPLS Network Actions (MNA) framework which provides a unified encoding for signaling network actions and their data within the MPLS stack. Network actions in the MNA framework serve a similar role for MPLS as extension headers (EH) do for IPv6. The network actions can be encoded within the label stack (in-stack) or following the stack (post-stack). In this work, we give a comprehensive overview of the design principles of network actions in the MNA framework and the mechanisms that benefit from this framework. We summarize and explain use cases in the MNA framework. Building on this, we implement the MNA framework in P4 on the Intel Tofino 2 switching ASIC. Our work explores an in-stack data (ISD) implementation of the MNA framework. The implementation can process 51 label stack entries containing 32 network actions at a line rate of 400 Gb/s per port. Additionally, we implement and evaluate an exemplary network action for performance measurement with AMM. Finally, we identify challenges with an MNA in-stack implementation and propose an extension to the signaling procedure.
翻译:传统上专注于使用标签进行数据包转发的MPLS协议,已演进至包含服务功能链(SFC)、交替标记方法(AMM)和原位操作、管理与维护(IOAM)等高级机制。然而,其中许多机制需要对现有MPLS规范进行扩展,导致其部署困难。为弥合这一差距,IETF MPLS工作组提出了MPLS网络操作(MNA)框架,该框架为在MPLS栈内信令网络操作及其数据提供了统一的编码方式。MNA框架中的网络操作对于MPLS的作用,类似于扩展报头(EH)对于IPv6的作用。网络操作可在标签栈内(栈内)或栈后(栈后)进行编码。本文全面概述了MNA框架中网络操作的设计原则以及受益于此框架的机制。我们总结并解释了MNA框架中的用例。在此基础上,我们在Intel Tofino 2交换ASIC上使用P4实现了MNA框架。我们的工作探索了MNA框架的栈内数据(ISD)实现。该实现能够以每端口400 Gb/s的线速处理包含32个网络操作的51个标签栈条目。此外,我们实现并评估了一个用于AMM性能测量的示例性网络操作。最后,我们指出了MNA栈内实现面临的挑战,并提出了对信令过程的扩展建议。