今天是10/15/2016,如果时间太久请移步https://github.com/p4lang/behavioral-model参考最新信息。
BMv2是一个交换机模拟引擎,和p4-factory不同,不依靠代码生成,而是根据p4c-bm编译生成的JSON动态生效。
安装:
===================================================
因为之前安装了p4-factory,所以相关软件可能已经安装好,如果缺东西,请参考github
还是ubuntu1404:
git clone https://github.com/p4lang/behavioral-model.git
cd behavioral-model
./autogen.sh
./configure --with-pdfixed
make
sudo make install
sudo ldconfig
#注意内存要够大,我的vm 1.5G内存要切换到runlevel 1才编译成功。
#make install 会安装bm开头的命令和simple_switch,用于启动bmv2, 编译switch项目必须
#运行simple_switch, 如果提示libruntimestubs.so.0找不到,需要运行sudo ldconfig
启动:
=======================================================
启动BMv2参考前面文章安装p4c-bm, 然后执行:
tools/veth_setup.sh
p4c-bm --json simple_router.json targets/simple_router/simple_router.p4 //生成JSON文件
sudo targets/simple_router/simple_router
--log-console -i 0@veth2 -i 1@veth4 simple_router.json
引用
Thrift port was not specified, will use 9090
Adding interface veth2 as port 0
Adding interface veth4 as port 1
Thrift server was started
设备成功启动~
#Targets下面各个目录的启动脚本都一样,建议看看其它参数。
#没有--log-console出错居然看不到。操作端口需要sudo权限
然后新开一个窗口运行
tools/runtime_CLI.py, 在命令窗口中运行命令来操作BMv2的表、端口、
引用
RuntimeCmd: port_add veth4 2
RuntimeCmd: show_ports
port # iface name status extra info
==================================================
0 veth0 UP
1 veth2 UP
2 veth4 UP
查看targets/simple_router/commands.txt里面有更多命令可以参考。
Mininet:
===================================
上面单独启动BMv2还是不方便用veth需要自己绑定到交换机或者容器去测试,这里有个现成的方式:
sudo python mininet/1sw_demo.py --behavioral-exe targets/simple_router/simple_router --json targets/simple_router/simple_router.json
启动后一样h1 ping h2不通,因为转发表还没配置。在新窗口中运行:
tools/runtime_CLI.py < targets/simple_router/commands.txt
导入规则之后mininet窗口h1 ping h2成功。
开发自己的p4模型:
===================================
应该是这样:
1. 写好p4文件
2. 用p4c-bm编译成json
3. 启动mininet加载json
4. 启动runtime_CLI.py配置
====================================
BMv2可以定制,如果你是设备商或者芯片厂家,要定义自己的设备来模拟,需要生成参考doxgen:
doxgen Doxfile
生成的文档在doxgen-out目录
分享到:
相关推荐
p4环境配置安装包(behavioral-model+gmock-1.7.0+p4c+protobuf-3.2.0+thrift-0.9.2),配置教程链接:https://blog.csdn.net/qq_34039018/article/details/88843937
行为模式(bmv2) 这是参考P4软件开关的第二个版本,昵称为bmv2(用于行为模型版本2)。 软件开关是用C ++ 11编写的。 它以从您的P4程序生成的JSON文件作为输入,并将其解释为实现该P4程序指定的数据包处理行为。 这...
【标题】"KMV的MATLAB的代码-CarND-Behavioral-Cloning:CarND行为克隆" 涉及的是一个自动驾驶技术中的行为克隆项目,使用MATLAB进行实现。行为克隆是一种机器学习方法,通过观察人类驾驶员的行为(通常是驾驶时的...
在这个案例中,“behavioral-auth”插件利用JavaScript来捕捉和分析用户的在线行为,创建一个用户行为模型。 **JavaScript在行为认证中的应用** JavaScript是实现行为认证的关键,因为它可以在前端实时收集数据。...
在这个名为"behavioral-patterns"的项目中,我们聚焦于JavaScript中的行为模式。这个项目源于一个在慕尼黑工业大学(TUM)举办的设计模式研讨会。 行为模式主要包括以下几个方面: 1. **策略模式(Strategy)**:...
该存储库中有三个安装脚本,可以帮助您构建和安装p4c和behavioral-model项目以及它们对Ubuntu p4c或20.04 Linux计算机的依赖性。 请参阅使用这些脚本的。 有关各种P4主题的文章 请参阅以获取此存储库中包含的文章...
《PyPI官网下载:discovery-behavioral-utils-2.4.8.tar.gz——深入探索Python库的实用工具》 PyPI(Python Package Index)是Python开发者们分享和获取软件包的重要平台,其中包含了丰富的Python库资源。本文将...
model.h5 :火车模型 model.py :训练模型的脚本 Pipfile : pipenv描述 prepare_dataset.py :原始sim图像到训练数据集转换器 sdcn_4_transfer.ipynb :用于在Google Colab上训练模型的最终笔记本 video.mp4 :自主...
model.py(用于创建和训练模型的脚本) drive.py(用于开车的脚本-随时修改此文件) model.h5(训练有素的Keras模型) 报告撰写文件(降价或pdf) video.mp4(您的车辆在赛道上自动行驶至少一整圈的视频记录) ...
2. FPGA设计流程通常包括设计输入、逻辑综合、时序仿真、编程下载和硬件测试。这一流程体现了现代EDA设计的系统化和自动化。 3. 设计实体由库与程序包、实体和结构体三部分组成,分别用于声明资源、描述外部接口和...
《PyPI官网下载 | discovery-behavioral-utils-2.5.9.tar.gz》 PyPI,全称为Python Package Index,是Python社区最重要的资源库,它提供了大量的Python软件包供开发者下载和使用。"discovery-behavioral-utils-...
行为克隆 使用提供的模拟器,神经网络可用于克隆给定用户的驾驶行为。 概述 使用模拟器,我们可以记录行驶中的汽车的转向角和速度。 模拟器中的汽车具有三个摄像头:左,中和右。 此设置类似于Nvidia发表的论文《 ...
-- Module Name: div_4 - Behavioral -- Project Name: -- Target Device: -- Tool versions: -- Description: -- -- Dependencies: -- -- Revision: -- Revision 0.01 - File Created -- Additional Comments:
行为克隆项目-最终提交 该项目的目标/步骤如下: ...2.提交内容包括功能代码 使用提供的Udacity模拟器和我的drive.py文件,可以通过执行以下命令自动在轨道上驾驶汽车 python drive.py model.h5 3.提
出的数字进行统计,计算出的平均数,再转换平均数乘以1/2,获得标准值。其中最接近的得到最高奖励。那么请问,你会选择1-100之间的哪个数字呢? 目标: 每30分钟(暂定)进行一轮投票,参与玩家仅可以看到当前参与...
行为设计模式在软件工程中,行为设计模式是一种设计模式,用于标识对象之间的通用通信模式并实现这些模式。 通过这样做,这些模式增加了执行此通信的灵活性。 责任链一种在一系列对象之间传递请求的方式命令将命令...
在本项目"CarND-Behavioral-Cloning-P3.zip"中,我们探讨的是行为克隆(Behavioral Cloning)技术在自动驾驶领域的应用。行为克隆是一种机器学习方法,它通过观察人类驾驶员的行为,利用大量的驾驶数据来训练深度...
在这里,BNP Paribas使用了两个模型:短期的EM-BEER模型(Emerging Market Behavioral Exchange Rate Model)和长期的FEER模型(Fundamental Equilibrium Exchange Rate Model)。这两个模型分别考虑了不同时间段内...