# UPGW on VPP 基础框架 增加`UPGW plugin`,同一时间只能开启`UPF`或者`UPGW`一个功能。 ## GRAPH ![UPGW_on_VPP_graph](../../_static/UPGW_on_VPP_graph.png) 新增`UPGW plugin`关联节点: * **upgw-input**:承载`dpdk-input`收上来的所有报文,并做初步报文检测 * 对于非`ip`报文直接送入`interface-output`节点做透传处理; * 对于`GTPU`报文,若为原生数据包(`Message Type 0xff`),并则进一步区分是否为`DNS`报文,若是则标记后送入`upgw-dns-redirect`节点,否则标记后送入`upgw-traffic-process`节点 * 对于`ip非GTPU`报文,并则进一步区分是否为`DNS`报文,若是则标记后送入`upgw-dns-redirect`节点,否则标记后送入`upgw-traffic-process`节点 * **upgw-edge-process**:承载所有需要分流到边缘的流量,暂时作为空节点不做处理,后续带宽管理,限速,计费功能均在该节点实现,通过报文标记将报文对应送入下一级节点 * **upgw-traffic-process**:承载需要分流到边缘的非`DNS`流量,实现黑白名单功能,对报文添加/去除`GTPU`头,重新封装二层头等 * **upgw-dns-redirect**:承载需要重定向到边缘的`DNS`流量,实现`DNS query`流量的重定向和`DNS answer`的还原等