当前位置: 首页 > news >正文

网站分为哪几种深圳将举行新闻发布会

网站分为哪几种,深圳将举行新闻发布会,小鱼儿企业网站管理系统,基于html5的购物网站开发目录 一. 实验目的二.阅读MyController.py文件1.导入P4Runtime的库2.main部分1. P4InfoHelper 实例化2. 创建交换机连接3. 设置主控制器4. 安装 P4 程序5. 写入隧道规则6. 读取表项和计数器#xff08;注释掉的部分#xff09;7. 定时打印隧道计数器8. 异常处理9. 关闭交换机… 目录 一. 实验目的二.阅读MyController.py文件1.导入P4Runtime的库2.main部分1. P4InfoHelper 实例化2. 创建交换机连接3. 设置主控制器4. 安装 P4 程序5. 写入隧道规则6. 读取表项和计数器注释掉的部分7. 定时打印隧道计数器8. 异常处理9. 关闭交换机连接 二. 实验过程1. Topo2. 观察初始的工程3.S1与S2的隧道建立4. rules的打印 三. 实验结果四.知识总结 一. 实验目的 In this exercise, we will add support for a basic tunneling protocol to the IP router that you completed in the previous assignment. The basic switch forwards based on the destination IP address. Your jobs is to define a new header type to encapsulate the IP packet and modify the switch code, so that it instead decides the destination port using a new tunnel header 需求提取; 1.编译隧道规则 2. 采用P4Runtime下发表项 二.阅读MyController.py文件 1.导入P4Runtime的库 sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)),../../utils/))sys.path 是一个字符串列表表示解释器在导入模块时会搜索的路径集合。 __file__ 是一个特殊变量它包含了当前执行的 Python 脚本的路径。 所以这行代码的意思是将P4Runtime的utils库导入到项目中 2.main部分 1. P4InfoHelper 实例化 p4info_helper p4runtime_lib.helper.P4InfoHelper(p4info_file_path)在 P4Runtime 环境中它创建了一个 P4InfoHelper 实例。这个实例用于简化和协助处理 P4Info 文件中的数据。让我们分解这个命令以及涉及的相关概念。 P4Info 文件 定义:P4Info 是一个由 P4 编译器生成的文件包含了 P4 程序的元数据。这些元数据包括但不限于表、动作、计数器等的定义。 作用P4Info 文件为 P4Runtime 控制器提供必要的信息以便它可以正确地与 P4 编程的交换机交互。它是控制器理解 P4 编程网络设备的关键。 P4Runtime Lib Helper 定义一个 Python 库提供了与P4Runtime操作相关函数 作用它包装了一些复杂的 P4Runtime 操作使得在 Python 中编写控制器代码更加简单和直观用于简化在 P4Runtime 中操作 P4Info 数据和与 P4Runtime 交换机交互的过程。 P4InfoHelper 类 定义p4runtime_lib 中的一个类用来处理 P4Info 文件。 作用P4InfoHelper 类通过 P4Info 文件的路径初始化。它读取文件内容并解析其中的元数据使这些信息可以在后续操作中轻松使用。 所以这行代码创建个P4InfoHelper 对象充当了 P4 程序定义和控制器之间的桥梁。通过解析 P4Info 文件它提供了一种高效的方式来访问和操作 P4 程序中定义的各种网络实体。 当然我会详细解释脚本中 main 函数的内容。main 函数是这个脚本的核心主要负责设置 P4Runtime 环境并在交换机上配置隧道规则。让我们分步骤详细解释 2. 创建交换机连接 s1 p4runtime_lib.bmv2.Bmv2SwitchConnection(names1,address127.0.0.1:50051,device_id0,proto_dump_filelogs/s1-p4runtime-requests.txt) -------省略这两段代码分别创建了两个 Bmv2SwitchConnection 对象分别代表两个虚拟交换机s1 和 s2。这些对象负责管理与交换机的 P4Runtime 通信。name 参数指定了交换机的名称。address 是交换机的 gRPC 地址。device_id 是交换机的设备ID。proto_dump_file 参数指定了一个文件用于记录与交换机通信的所有 P4Runtime 消息。 3. 设置主控制器 s1.MasterArbitrationUpdate() s2.MasterArbitrationUpdate()这两行代码为两个交换机发送主仲裁更新消息。在 P4Runtime 中控制器需要成为主控制器才能对交换机进行编程。 4. 安装 P4 程序 s1.SetForwardingPipelineConfig(p4infop4info_helper.p4info,bmv2_json_file_pathbmv2_file_path)这两行代码在交换机 s1 和 s2 上安装 P4 程序。它们通过 gRPC 设置转发管线配置。p4info 参数是之前解析的 P4Info 数据。bmv2_json_file_path 是 P4 编译器生成的 BMv2 JSON 文件的路径该文件包含了 P4 程序的实现细节。 5. 写入隧道规则 writeTunnelRules(p4info_helper, ingress_sws1, egress_sws2, tunnel_id100,dst_eth_addr08:00:00:00:02:22, dst_ip_addr10.0.2.2)writeTunnelRules(p4info_helper, ingress_sws2, egress_sws1, tunnel_id200,dst_eth_addr08:00:00:00:01:11, dst_ip_addr10.0.1.1)这两个 writeTunnelRules 函数调用配置了隧道规则。第一个调用设置了从 s1 到 s2 的隧道第二个则相反。参数包括 p4info_helper用于构建 P4 表项ingress_sw 和 egress_sw入口和出口交换机tunnel_id隧道标识符目标以太网地址和目标 IP 地址。 6. 读取表项和计数器注释掉的部分 # readTableRules(p4info_helper, s1) # readTableRules(p4info_helper, s2)它们会读取并打印交换机 s1 和 s2 上的表项。 7. 定时打印隧道计数器 while True:sleep(2)print(\n----- Reading tunnel counters -----)# ... (省略了打印计数器的代码)这个循环每 2 秒打印一次隧道计数器的值显示通过隧道发送的数据包和字节的数量。 8. 异常处理 except KeyboardInterrupt:print( Shutting down.) except grpc.RpcError as e:printGrpcError(e)这部分处理了两种异常。一种是用户中断如按 CtrlC另一种是 gRPC 错误。 9. 关闭交换机连接 ShutdownAllSwitchConnections()脚本结束时关闭与所有交换机的连接。 二. 实验过程 1. Topo 2. 观察初始的工程 首先我们分别把服务起来后可以看到只有s1的1端口接收到了数据包这是因为我们只给s1的port2和s2的port1下发了表项而隧道规则并没有下发所以数据包会被drop即只会有s1连接h1的那个端口会有packet接收其它端口没有。 3.S1与S2的隧道建立 p4info_helper.buildTableEntry(...): 这个函数用于创建一个表项。这个函数的参数包括 table_name: 指定要配置的表的名称。match_fields: 定义了需要匹配的字段。action_name: 当匹配成功时将要执行的动作。action_params: 与动作相关的参数。 ingress_sw.WriteTableEntry(table_entry): 将上面创建的表项写入到交换机的入口交换。 4. rules的打印 这段代码是用于从使用P4语言编程的交换机中读取并打印配置的表项table entries。代码的每部分功能如下 三. 实验结果 四.知识总结 翻译自官网 这个 p4runtime_lib 目录包含了几个Python文件每个文件都承担着特定的角色以支持P4网络设备的控制和管理。以下是每个文件的概要说明 helper.py 包含 P4InfoHelper 类用于解析p4info文件。提供从实体名称到ID号以及从ID号到实体名称的转换方法。构建与P4程序相关的P4Runtime表项的部分。 switch.py 包含 SwitchConnection 类负责获取gRPC客户端存根并建立与交换机的连接。提供辅助方法来构造P4Runtime协议缓冲消息并执行P4Runtime gRPC服务调用。 bmv2.py 包含 Bmv2SwitchConnection 类它扩展了 SwitchConnection 类并提供BMv2特有的设备负载来加载P4程序。 convert.py 提供方便的方法来实现友好字符串和数字与协议缓冲消息所需的字节字符串之间的编码和解码。被 helper.py 使用。 这些文件共同工作为P4Runtime环境下的网络设备如基于BMv2的交换机提供了一个完整的控制和配置框架。通过这个库开发人员可以更方便地与P4Runtime兼容的设备交互包括配置网络转发规则、读取设备状态、以及管理设备连接等。
http://www.zqtcl.cn/news/888939/

相关文章:

  • 网站制作 搜索做效果图网站有哪些
  • 网站建设的相关技术网站的购物车怎么做
  • 免费建设公司网站腾讯云域名购买
  • 淘宝客网站应该怎么做网页浏览器推荐
  • 怎样做影视网站不侵权商丘专业做网站
  • 哪个网站做刷手最好鹤壁 网站建设
  • 设计接单子网站安徽网站开发推荐
  • 网站建设制作 优帮云怎样注册商标申请
  • 网站怎么做交易市场苏州吴江做网站公司
  • wordpress的字体禁用优化设计的答案
  • 网站建设开发五行属性如何做二级域名网站
  • 珠海做网站的公司介绍最近的新闻大事
  • 手机网站开发解决方案石碣镇网站建设
  • 保定网站建设公司哪家好app开发公司好吗
  • 网站域名备案证书网页素材大宝库
  • 沈阳网站制作的公司哪家好wordpress您访问的网页出错
  • 南京做公司网站有什么网站用名字做图片大全
  • 网站正在建设中页面wordpress 折叠文章
  • 广西建设科技协会网站手工做环保衣的网站
  • 怎么免费做网站教程开发专业网站
  • 鹿邑网站设计公司什么网站可以免费做找客户
  • wordpress模板站如何安装wordpress 查询语句
  • 给窗帘做网站淄博周村学校网站建设公司
  • 关于志愿者网站开发的论文做什么网站开发好
  • 做电影网站如何规避版权做新年公告图片的网站
  • 网站修改后怎么上传济南网络员
  • 家居seo整站优化方案怎样开平台软件
  • 深圳网站关键词网站做视频转流量
  • 做网站如何配置自己的电脑精准防恶意点击软件
  • 单页网站 挣钱深圳高水平网站制作