与4G核心网相比,5G核心网有下面几个特性:服务化,C/U分离(控制面与用户面解耦),NFV,切片等。本篇在NFV和C/U分离的背景下,先描述了UPF网元选用P4作为技术方案的优缺点和参考实现方案,最后结合相关开源代码给出一个基于P4的UPF概念演示demo。

背景

以个人观点看,NFV和C/U分离都是软件定义一切的思想向CT领域渗透的结果。NFV(Network Functions Virtualization,网络功能虚拟化),将以前在专用硬件才有的网络功能,以软件的形式提供,并可部署在通用服务器下的虚拟化平台中。用软件实现网络功能,可加快新功能和新业务的上线。虚拟化,又可节约硬件投入成本和加大硬件利用效率。再看C/U分离,C/U分离差不多是另一种语境下,或可称之为移动通信领域下SDN。C/U分离,将核心网分为控制面和用户面两部分。将移动性管理、会话管理、用户数据等信令控制功能且包含一定用户身份敏感信息的部分放在控制面,其通常部署在管理完善的中心DC。同时,为满足低时延和高带宽的需求,用户面可灵活部署在靠近用户侧的边缘DC。用户面通过控制面下发的转发策略进行用户数据的转发,5G用户面网元UPF相较于4G网关SGW/PGW的功能,其功能相对简化、单一。另外,再结合C/U接口协议(PFCP)定义的标准化过程,使得5G UPF有可能作为一种白盒网络交换设备产品出现。
    简单的讲,UPF(User Plane Function,用户面功能)为移动基础设施(Mobile Infrastructure,例如:RAN)和 DN(Data Network)之间的网关设备,完成 终端用户数据业务的 GTP-U隧道转发功能。借用下面这张图可以看出UPF在移动通信网络中的逻辑关系。UPF受控制面网元SMF控制,SMF通过参考点N4接口向UPF按照PFCP(Packet Forwarding Control Protocol)定义的交互消息向UPF下发转发规则。UPF从基站侧N3口接收UE终端用户上行访问DN的数据业务,完成GTPU隧道的解封装和路由工作。UPF从DN(数据网络)侧接收下行数据,进行目的UE的GTPU隧道封装工作,交由基站,最终由基站通过无线信道将数据转发给UE。

    从下图协议栈的角度看,可能也很容易看出UPF数据面所做的GTPU隧道转发处理的工作。当然上述描述的只是UPF最基础的功能,UPF还需要有计费、策略、Qos和DPI等功能。

    与其他NFV中以数据转发为主要功能的产品技术实现方案一样。NFV下的UPF也多采用DPDK+SR-IOV/passthrough方案。此方案SR-IOV/passthrough直接越过虚拟化层,将网卡资源直接供guest OS使用,避免了虚拟化网络对性能的影响。Guest OS中,UPF使用DPDK越过了OS的网络协议栈,在用户态下实现网络报文快速转发处理。当前大多数NFV环境下的网卡和CPU架构都可满足DPDK+SR-IOV/passthrough运行条件,故此方案的适配性已不是最大问题。转而面临的最大挑战在于,这种基于通用CPU的数据面处理方案,在受多线程同步、cache miss等影响下,时延抖动和最大速率很难得到保证。换一个方式说,就是当前DPDK+SR-IOV/passthrough已经到了性能的瓶颈期,如果需要可保证的时延和带宽的需求,需要考虑新的技术实现方案。
    从性能角度看,硬件实现方案应该是最优的。数据面硬件方案有FPGA、专用ASIC和NP(网络处理器)。而P4作为一种可编程数据面语言,对于熟悉Linux 网络开发人员来说,学习门槛更低,结合例如Barefoot Tofino的P4芯片,可以快速开发创新多样的数据面应用。下一节将给出P4下UPF的几种方案考虑。

UPF的P4方案

1、upf as sdn app
    UPF作为在SDN OS之上的APP,UPF APP完成控制相关的功能,例如PFCP会话的建立,PFCP消息的编解码,并通过SDN OS接口完成转发规则的下发。此方案也称为vnf offload方案,即vnf UPF功能用sdn实现。此时UPF业务作为整体SDN网络功能的一部分,路由功能可有SDN OS提供链路拓扑让上层APP实现。

2、upf +switchOS
    Upf-C控制面功能单独作为一个程序,直接用switchOS通信,不需要SDN OS。

对比项 upf as sdn app upf +switchOS
规模 多个switchOS,在已有sdn fabric网络中新增UPF功能。 单switchOS。新增独立UPF节点。强调轻量级和小型化
开发难易程度 难。需要对SDN OS和switch OS,P4 pipeline都有一定的知识储备。 简单。主要具备switchOS北向接口和p4 pipeline知识即可。因为是单节点,路由协议功能可以放在UPF-C静态配置或做简单的动态路由。
维护 难。定位问题,需要从上到下。 简单。结构的简单,带来定位问题的简单。

在UPF使用P4的起步阶段,个人觉得upf +switchOS更简单也更易推广,在已有白盒P4交互机上进行UPF-C的开发,就可实现边缘UPF功能,转发性能和功耗方面比通用服务器UPF的方案具有竞争优势。在通用服务器使用P4加速网卡的情况下,也可将此方案直接用在VNF中。
    由于P4报文处理基本依赖table match—action操作,对于DPI这种深层(七层)协议解析且需要大量正则表达式匹配的处理,存在dataplane无法处理的问题。两种方案中,都可将此类报文送到控制面处理。但笔者更倾向于将类数据面业务转发到另一个“协处理单元”进行处理,这引出了方案3.
3、upf+switchOS+vpp

    此方案中switchOS中的dataplane充当整个UPF的fastpath,对于无法识别或处理的报文,转发到VPP所在的网络接口,VPP处理完后,然经由SwitchOS dataplane转发(对外体现网络接口IP的一致性)。VPP实现dpi功能,可借鉴融合vpp ndpi项目。

upf_p4_poc

为对P4在UPF应用,有一个更直观的评价和认知。笔者基于方案2 upf +switchOS思路,制作了一个upf_p4_proc工程,详见upf_p4_poc。整体组件框图如下:

    此工程基于stratum+bmv2,实现了简单的pfcp session建立下pdr和far创建,以及对应的上下行gtpu数据在p4 pipeline的处理。对P4和UPF开发感兴趣的可以同学看一下,其中UPF信令面和用户面的基于scapy的python脚本,对UPF开发同学也许有点参考作用。以前做UPF开发的时候,最痛苦的就是UPF不好自测,现在依靠scapy,难度降低不少。
    后期,还会考虑一下基于xdp的upf demo。虽然个人认为xdp可能更适合当前已有的使用iptable在内核态实现一些防火墙的功能,UPF未必是好的应用场景。但这个还要实践后,再给出文章分析。

P4与5G UPF实践相关推荐

  1. P4编程理论与实践——理论篇(转载)

    P4编程理论与实践--理论篇 由于对SDN充满着兴趣,在学习了一段时间OpenFlow之后,一次偶然的机会接触到了P4.P4可以实现很多新的Idea,但是无奈于国内的实践资料太少了(有些资料似乎比较陈 ...

  2. 大唐杯 5G工程实践 (35:00-45:00)任务三 任务五(15%)

    网络规划基本原理 无线网络规划整体流程 什么叫做规划?如何规划建立一个5G的基站 了解预规划和工程执行里面具体细分的步骤 覆盖规划:确定每个站要覆盖多远.一共要建设多少个站,包括到终端之间的距离 RR ...

  3. 工业互联网对5G UPF的要求

    定了题目,写下第一行文字的时候,就有点后悔了.题目定的有点大了,有点hold不住.所以文章中肯定有错误的地方,后面随着笔者认知和实践增加,再后续更新修订.UPF作为移动通信网络中的用户面网关,主要解决 ...

  4. 5G UPF + MEC 的部署位置、场景与模式

    目录 文章目录 目录 通信网络的时延分析 部署位置 UPF 的部署位置 中心级 UPF 区域级 UPF 边缘级 UPF 企业级 UPF ME Host 的部署位置 ME Host 在接入局所 DC M ...

  5. P4编程理论与实践——理论篇

    由于对SDN充满着兴趣,在学习了一段时间OpenFlow之后,一次偶然的机会接触到了P4.P4可以实现很多新的Idea,但是无奈于国内的实践资料太少了(有些资料似乎比较陈旧了).唯一的学习来源是官网的 ...

  6. 技术周|5G UPF + MEC 的部署位置、场景与模式

    目录: 1.通信⽹络的时延分析 2.MEC 的部署位置 UPF 的部署位置 ME Host 的部署位置 3.MEC 的部署场景 MEC 在 4G ⽹络中的部署 透明串接⽅案 分布式⽹关⽅案 MEC 在 ...

  7. 5G工程实践(15%)

    大唐杯的模拟题都会考原题 网络规划原理 无线网络规划整体流程-----规模估算-----机房设备及配套设备的规划原理 个人感觉勘察工作就和土木建房一样,大致流程就是选址,设计图纸,施工,测试 电信项目 ...

  8. 核心网upf作用_高性能5G核心网,动力从何而来? 核心网,是整个通信网络的大脑,是不可或缺的重要组成部分。 网络的管理控制、鉴权认证等关键功能,主要由核心网负责。核心网的... - 雪球...

    来源:雪球App,作者: 鲜枣课堂,(https://xueqiu.com/7282046183/152278945) 核心网,是整个通信网络的大脑,是不可或缺的重要组成部分. 网络的管理控制.鉴权认 ...

  9. 中的实践 中兴_中兴5G切片获得高度肯定!

    重要信息 近日, 全球著名市场研究和咨询公司Strategy Analytics发布<网络切片助力5G变现:潜在的商业模式>白皮书.该报告认为,5G网络要取得商业上的成功,需要将网络切片服 ...

  10. 基于英特尔平台的三星5G核心网高性能UPF 305 Gbps解决方案

    本周我们与大家分享一篇英特尔与三星共同完成的研究成果,全文大概5000字,建议先分享/收藏再阅读哦. 作者 Intel Corporation- Data Center Group Andriy Gl ...

最新文章

  1. Linux 准确查找结构体定义位置
  2. Go 语言编程 — 程序结构
  3. 李永乐线性代数手写笔记-行列式与矩阵
  4. java 序列化 例子_Java序列化和反序列化例子
  5. 二、前端pink老师的CSS定位学习笔记(超详细,简单易懂)
  6. 线段树 B数据结构 牛客练习赛28
  7. 苹果AirPods 2又有新消息了!具备防滑涂层和新配色
  8. Linux之vmstat命令
  9. pytorch tensor操作:tensor与numpy转换
  10. java写入文件不覆盖写入_Java写入文件–用Java写入文件的4种方法
  11. svn: No repository found in 'svn:..解决方案
  12. 不要随便参加业主群的赏月大赛
  13. 宿命java_昆仑奇侠传外传之宿命篇
  14. 光耦重要参数与常用设计注意事项
  15. 大带宽、高灵敏度、扫描快速手持式监测接收机TFN DC700S
  16. 如何把动态硬盘转换为基本硬盘
  17. 自己撸一个Wordcount
  18. 读完这本书打通了“数据化运营”的任督二脉
  19. 《玩不够的数学:算术与几何的妙趣》:第一章 平面上的几何艺术
  20. 用Photoshop画气泡

热门文章

  1. Python 获取 Flash SWF 文件宽度和高度(Width, Height)
  2. 很久以前写的lumaqq安装教程
  3. scrapy框架简介和基础应用
  4. MFC界面库BCGControlBar v32.0 - 网格、报表控件升级
  5. 组态软件及其应用方式
  6. 奇迹mu开服教程:服务端的架设及开服注意事项
  7. 电脑围棋中的人工智能技术
  8. 史上最大,人工智能算法模型GPT-3问世,这意味着什么?
  9. wfGo 围棋 联机对战模式
  10. 【前端】【HTML+CSS+JavaScript(JS)】简易工资计算器的实现