如下创建物理接口GigabitEthernet7/0/0的对等接口e7。

vpp# show interface GigabitEthernet7/0/0Name               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count
GigabitEthernet7/0/0              10    down         9000/0/0/0
vpp#
vpp# lcp create GigabitEthernet7/0/0 host-if e7
vpp#
vpp# show tap
Interface: tap10 (ifindex 17)name "e7"host-mtu-size "9000"host-mac-addr: 00:60:e0:6f:5a:f0

创建物理接口GigabitEthernet8/0/0的对等接口e8,并且接口状态设置为UP,MTU设置为1500(默认情况为9000)。对等接口的MAC地址与实际的物理接口的MAC地址相同。

vpp# show interface GigabitEthernet8/0/0Name               Idx    State  MTU (L3/IP4/IP6/MPLS)     Counter          Count
GigabitEthernet8/0/0              11    down         9000/0/0/0
vpp#
vpp#
vpp# set interface state GigabitEthernet8/0/0 up
vpp# set interface mtu packet 1500 GigabitEthernet8/0/0
vpp#
vpp# lcp create GigabitEthernet8/0/0 host-if e8
vpp#
vpp# show tap
Interface: tap11 (ifindex 18)name "e8"host-mtu-size "1500"host-mac-addr: 00:60:e0:6f:5a:f1

LCP命令查看接口对。

vpp# show lcp
lcp default netns '<unset>'
lcp lcp-auto-subint off
lcp lcp-sync off
itf-pair: [0] GigabitEthernet7/0/0 tap10 e7 18 type tap
itf-pair: [1] GigabitEthernet8/0/0 tap11 e8 19 type tap

退出VPP命令行,在Linux shell中查看创建的两个tap接口,e7的mtu为9000,状态为down。接口e8的mtu为1500,状态为up。并且,接口e7和e8的MAC地址与VPP中的接口GigabitEthernet7/0/0和GigabitEthernet8/0/0的MAC地址相同。

$ ip link show type tun
18: e7: <BROADCAST,MULTICAST> mtu 9000 qdisc mq state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:6f:5a:f0 brd ff:ff:ff:ff:ff:ff
19: e8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:6f:5a:f1 brd ff:ff:ff:ff:ff:ff

管理状态同步

LCP接口管理状态同步开关。

vpp# lcp lcp-sync on
vpp#
vpp# show lcp
lcp lcp-sync on

如下在VPP中将GigabitEthernet7/0/0接口状态设置为UP,linux中的对等接口e7状态也同步为UP。

vpp# set interface state GigabitEthernet7/0/0 up
vpp# quit
#
#
# ip link show type tun
18: e7: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 9000 qdisc mq state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:6f:5a:f0 brd ff:ff:ff:ff:ff:ff

接口链路状态不受以上开关的限制。断开物理接口GigabitEthernet8/0/0的网线,VPP和linux中的e8接口的链路状态都是DOWN。

# ip link show type tun
19: e8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:6f:5a:f1 brd ff:ff:ff:ff:ff:ff
#
#
# vppctl
vpp#
vpp# show hardware-interfaces GigabitEthernet8/0/0Name                Idx   Link  Hardware
GigabitEthernet8/0/0              11    down  GigabitEthernet8/0/0vpp#
vpp# quit
#
# ip link show type tun
19: e8: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000link/ether 00:60:e0:6f:5a:f1 brd ff:ff:ff:ff:ff:ff

设置接口IP地址

VPP中物理接口和linux中对等接口e8设置完全相同的IP地址。

vpp# set interface ip address GigabitEthernet8/0/0 10.0.1.1/24
vpp# quit
vpp#
#
# ip addr add dev e8 10.0.1.1/24

在linux中ping外部主机10.0.1.2。

# ping 10.0.1.2
PING 10.0.1.2 (10.0.1.2) 56(84) bytes of data.
64 bytes from 10.0.1.2: icmp_seq=1 ttl=64 time=0.290 ms

在VPP中trace回复的ICMP报文,如下:

vpp# trace add dpdk-input 100
vpp#
vpp# show tracePacket 300:40:13:066975: dpdk-inputGigabitEthernet7/0/0 rx queue 0buffer 0x82ca6: current data 0, length 98, buffer-pool 0, ref-count 1, trace handle 0x2000002ext-hdr-validPKT MBUF: port 9, nb_segs 1, pkt_len 98buf_len 2176, data_len 98, ol_flags 0x180, data_off 128, phys_addr 0x92cb2a00packet_type 0x11 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0rss 0x0 fdir.hi 0x0 fdir.lo 0x0Packet Offload FlagsPKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is validPKT_RX_IP_CKSUM_NONE (0x0090) no IP cksum of RX pkt.PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is validPKT_RX_L4_CKSUM_NONE (0x0108) no L4 cksum of RX pkt.Packet TypesRTE_PTYPE_L2_ETHER (0x0001) Ethernet packetRTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headersIP4: 54:e1:ad:3f:11:f4 -> 00:60:e0:6f:5a:f0ICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066978: ethernet-inputframe: flags 0x3, hw-if-index 10, sw-if-index 10IP4: 54:e1:ad:3f:11:f4 -> 00:60:e0:6f:5a:f0
00:40:13:066980: ip4-input-no-checksumICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066980: ip4-lookupfib 0 dpo-idx 7 flow hash: 0x00000000ICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066984: ip4-receiveICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066985: ip4-icmp-inputICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066985: ip4-icmp-echo-replyICMP4 echo id 3 seq 1 (unknown)
00:40:13:066988: ip4-puntICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066988: ip4-punt-redirectvia redirect:0
00:40:13:066989: ip4-dvr-dpo sw_if_index:17
00:40:13:066990: ip4-dvr-reinjectsw_if_index:17
00:40:13:066992: tap11-outputtap11IP4: 54:e1:ad:3f:11:f4 -> 00:60:e0:6f:5a:f0ICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3
00:40:13:066993: tap11-txbuffer 0x82ca6: current data 0, length 98, buffer-pool 0, ref-count 1, trace handle 0x2000002ext-hdr-validlocal dvr l2-hdr-offset 0 l3-hdr-offset 14hdr-sz 0 l2-hdr-offset 0 l3-hdr-offset 14 l4-hdr-offset 0 l4-hdr-sz 0IP4: 54:e1:ad:3f:11:f4 -> 00:60:e0:6f:5a:f0ICMP: 10.0.1.2 -> 10.0.1.1tos 0x00, ttl 128, length 84, checksum 0xd71b dscp CS0 ecn NON_ECNfragment id 0x4d8bICMP echo_reply checksum 0xecf9 id 3

在接收到ICMP回复报文后,依次经过以下node节点:

ip4-icmp-echo-reply -> ip4-punt -> ip4-punt-redirect -> ip4-dvr-dpo -> ip4-dvr-reinject ->tap11-output -> tap11-tx

通过tap11-tx将报文送至linux中对等体接口。

LCP插件创建对等物理接口相关推荐

  1. LCP插件创建对等802.1ad接口

    首先,在VPP中创建物理接口GigabitEthernet8/0/0的802.1ad子接口,VLAN ID指定为2345. vpp# create sub GigabitEthernet8/0/0 2 ...

  2. LCP插件linux-cp-xc-ip6节点

    如下命令创建LCP接口对,VPP物理接口eth0,对应linux接口host-eth0.LCP插件创建了virtio类型的tap1接口,用于和host-eth0连通. vpp# lcp create ...

  3. 为Eclipse plug-in(插件)创建语言包

    在我们的应用中,难免会遇到国际化的问题,ECLIPSE RCP给我们提供了很好的方案,甚至可以在后期批处理完成,但如果是其它插件未提供我们需要的语言版呢?我们可以如何为它们提供语言包呢? 一个简单的例 ...

  4. 使用插件创建 .NET Core 应用程序

    使用插件创建 .NET Core 应用程序 本教程展示了如何创建自定义的  AssemblyLoadContext  来加载插件.AssemblyDependencyResolver  用于解析插件的 ...

  5. Eclipse使用Maven插件创建Web项目时出错:Could not resolve archetype org.apache.maven.archetypes

    问题描述: 在Eclipse下,使用Maven插件创建Web项目时出错,错误提示如下: 错误信息: Could not resolve archetype org.apache.maven.arche ...

  6. Delphi插件创建、调试与使用应用程序扩展

    Delphi插件创建.调试与使用应用程序扩展 翻译 : MiracleZ   有没有使用过Adobe Photoshop?如果用过,你就会对插件的概念比较熟悉.对外行人来说,插件仅仅是从外部提供给应用 ...

  7. 13、Kanzi插件——通过Kanzi Engine插件创建自定义节点+代码解析

    一.通过插件创建自定义类型的节点 在类Plugindemo 中添加一行 static kanzi::PropertyTypeEditorInfoSharedPtr makeEditorInfo(); ...

  8. 天翼云内网服务器映射端口,天翼云服务器创建对等连接(不同账户组内网)

    pc6a学习分享小白有2台不同账户下的天翼云服务器.现在的需求是组建内网.不走公网连接.这里需要用到的功能为虚拟私有云 – 对等连接.组建内网的好处是不消耗公网连接宽带,且内网为1000M宽带. 天翼 ...

  9. 利用WordPress官方插件创建sitemap站点地图的最佳方法

    作为站长不论小白还是经验丰富的老鸟,网站运营最重要的就是站点地图,站点地图是什么?它是一个工具,站长每天网站更新信息都被记录到网站地图(sitemap)里面,这是供搜索引擎爬虫抓取信息的页面,跟我们普 ...

  10. AutoCAD 2013 .net插件创建向导现在支持Map 3D,Civil 3D,AutoCAD Architecture 和AutoCAD MEP...

    相信大家都用过AutoCAD .net插件创建向导了,这个向导可以帮助大家很方便的创建AutoCAD插件,而且可以实现在Visual Studio Express版中进行调试.现在这个向导升级到了对A ...

最新文章

  1. H.264 基础及 RTP 封包详解
  2. ​​《自然》2020年十大科学发现出炉:病毒,冷冻电镜与快速射电暴
  3. python语言入门u-Python语言十分钟快速入门
  4. linux下的嵌入式开发技能(嵌入式工程师必备)
  5. Oracle执行计划中 并行和BUFFER SORT的问题
  6. 本地连接虚拟机 Oracle数据库 报ORA-12541:TNS:no listener
  7. rest-framework-权限组件
  8. 实验项目3——基本线性表运算(顺序存储方式)
  9. 三星Galaxy A90 5G版通过认证:有望成为最便宜的5G手机
  10. stooge sort
  11. L4Linux的版本比较
  12. 简述导线平差计算的五个步骤_结点导线如何平差
  13. 2020年最新测绘规范目录(可下载在线查看相关规范)
  14. 应变计测轴扭矩 计算
  15. ubuntu20.04 常用开发工具整理
  16. 冒死推荐一些值得推荐的 Java 练手项目
  17. google浏览器扩展翻译程序
  18. 微信公众平台开发——新增素材
  19. 【matlab系列汇总】matlab学习实战快速进阶之路(持续更新)
  20. 【Arduino实验】霍尔开关传感器例程

热门文章

  1. 测试基本理论-看这篇就够了
  2. 计算机网络:网络拓扑分类
  3. 地面波天线怎样能多收台_教你怎样挑选DTMB地面波天线
  4. 基础练习 Sine之舞(最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。)
  5. PLC和变频器通讯方式
  6. 图像识别的原理、过程、应用前景,精华篇!
  7. 基于RFID定位技术的精神病人员定位解决方案--新导智能
  8. JButton与Button的区别
  9. rospy Odometry天坑小计
  10. 【进阶】python写一个小猫