Skip to content

GitLab

  • Menu
项目 Groups 代码片段
    • 正在加载...
  • 帮助
    • 帮助
    • 支持
    • 社区论坛
    • 提交反馈
  • 登录/注册
  • P p4-learning
  • Project information
    • Project information
    • 动态
    • 标记
    • 成员
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • 议题 0
    • 议题 0
    • 列表
    • 看板
    • 服务台
    • 里程碑
  • 合并请求 0
    • 合并请求 0
  • CI/CD
    • CI/CD
    • 流水线
    • 作业
    • 计划
  • Deployments
    • Deployments
    • 环境
    • 发布
  • Monitor
    • Monitor
    • 事件
  • 软件包与镜像库
    • 软件包与镜像库
    • 软件包注册表
    • Infrastructure Registry
  • 分析
    • 分析
    • CI/CD
    • 仓库
    • Value stream
  • Wiki
    • Wiki
  • 代码片段
    • 代码片段
  • 动态
  • 分支图
  • 创建新议题
  • 作业
  • 提交
  • 议题看板
收起侧边栏
  • p4git
  • p4-learning
  • Wiki
  • Migrate to the new version

Migrate to the new version · 变更

页面历史
Updated Migrate to the new version (markdown) 编辑于 8月 01, 2021 作者: Jurij Nota's avatar Jurij Nota
Hide whitespace changes
Inline Side-by-side
Showing with 17 addition and 16 deletion
+17 -16
  • Migrate-to-the-new-version.md Migrate-to-the-new-version.md +17 -16
  • 未找到文件。
Migrate-to-the-new-version.md
查看页面@ c40b8ef3
......@@ -19,22 +19,22 @@ All the exercises and examples have been already migrated to the new version and
Consider that `obj` is the main object contained in the JSON network configuration file (i.e. the `p4app.json` file contained in the folders of the exercises and examples). Then we have the following major changes between the old and the new JSON network configuration file. Please remember that, because of these changes, **old JSON configuration files are not compatible with the new version of *P4-Utils***.
|Old version|New version|Description|JSON Data Type|
|:---------:|:---------:|:----------|:------------:|
|`obj["program"]`|`obj["p4_src"]`|Path to the default program for all the P4 switches.|string|
|`obj["switch"]`|*removed*|Default switch binary to use. Now the switch binary configuration relies on the Python `Switch` class passed to *P4-Utils*.|string|
|`obj["compiler"]`|*removed*|Default compiler binary to use. Now the compiler binary configuration relies on the Python compiler class passed to *P4-Utils*. By default, now class [`P4C`](https://github.com/nsg-ethz/p4-utils/blob/junota/p4utils/utils/compiler.py) (a Python wrapper around P4C) is used as compiler.|string|
|`obj["options"]`|`obj["compiler_module"]["options"]`|Options to pass to the compiler.|string|
|`obj["switch_cli"]`|*removed*|Default *Thrift* client binary to configure the switches.|string|
|*not present*|`obj["tasks_file"]`|Path to the file that contains all the tasks to execute in the nodes.|string|
|`obj["topo_module"]`|*removed*|Default *Mininet* `Topo` class to use. Now this setting cannot be specified anymore because we always use the default one.|object|
|`obj["controller_module"]`|*removed*|Default controller class to use to configure all the switches.|object|
|`obj["topodb_module"]`|*removed*|Default topology database class to query network information and save it to the disk. Now this setting cannot be specified anymore because we always use the default one.|object|
|*not present*|`obj["host_node"]`|Default Mininet host class to use.|object|
|*not present*|`obj["switch_node"]`|Default Mininet switch class to use.|object|
|*not present*|`obj["router_node"]`|Default Mininet router class to use.|object|
|*not present*|`obj["compiler_module"]`|Default P4 compiler class to use.|object|
|*not present*|`obj["client_module"]`|Default *Thrift* client class to use to configure the switches.|object|
|Old version|New version|Description|Default behaviour|JSON Data Type|
|:---------:|:---------:|:----------|:----------------|:------------:|
|`obj["program"]`|`obj["p4_src"]`|Path to the default program for all the P4 switches.|If not specified, then switches are initialized with empty P4 source.|string|
|`obj["switch"]`|*removed*|Default switch binary to use. Now the switch binary configuration relies on the Python `Switch` class passed to *P4-Utils*.| |string|
|`obj["compiler"]`|*removed*|Default compiler binary to use. Now the compiler binary configuration relies on the Python compiler class passed to *P4-Utils*. By default, now class [`P4C`](https://github.com/nsg-ethz/p4-utils/blob/junota/p4utils/utils/compiler.py) (a Python wrapper around P4C) is used as compiler.| |string|
|`obj["options"]`|`obj["compiler_module"]["options"]`|Options to pass to the compiler.| |string|
|`obj["switch_cli"]`|*removed*|Default *Thrift* client binary to configure the switches.| |string|
|*not present*|`obj["tasks_file"]`|Path to the file that contains all the tasks to execute in the nodes.|If not specified, no task file is considered.|string|
|`obj["topo_module"]`|*removed*|Default *Mininet* `Topo` class to use. Now this setting cannot be specified anymore because we always use the default one.| |object|
|`obj["controller_module"]`|*removed*|Default controller class to use to configure all the switches.| |object|
|`obj["topodb_module"]`|*removed*|Default topology database class to query network information and save it to the disk. Now this setting cannot be specified anymore because we always use the default one.| |object|
|*not present*|`obj["host_node"]`|Default Mininet host class to use.|If not specified, the default `Mininet` class will be used.|object|
|*not present*|`obj["switch_node"]`|Default Mininet switch class to use.|If not specified, the default `P4Switch` class will be used.|object|
|*not present*|`obj["router_node"]`|Default Mininet router class to use.|If not specified, the default `FRRouter` class will be used.|object|
|*not present*|`obj["compiler_module"]`|Default P4 compiler class to use.|If not specified, the default `P4C` class will be used.|object|
|*not present*|`obj["client_module"]`|Default *Thrift* client class to use to configure the switches.|If not specified, the default `ThriftClient` class will be used.|object|
|`obj["topology"]["default_delay"]`|`obj["topology"]["default"]["delay"]`|Links default transmission delay (ms).|number|
|`obj["topology"]["default_bw"]`|`obj["topology"]["default"]["bw"]`|Links default bandwidth (Mbps).|number|
|`obj["topology"]["default_loss"]`|`obj["topology"]["default"]["loss"]`|Links default loss.|number|
......@@ -42,5 +42,6 @@ Consider that `obj` is the main object contained in the JSON network configurati
|`obj["topology"]["default_queue_length"]`|`obj["topology"]["default"]["max_queue_size"]`|Links default maximum queue length.|number|
|`obj["topology"]["auto_gw_arp"]`|`obj["topology"]["default"]["auto_gw_arp"]`|Populate the ARP table of hosts with the default gateway MAC address. This prevents the exchange of ARP requests among hosts and default gateway.|boolean|
|`obj["topology"]["auto_arp_tables"]`|`obj["topology"]["default"]["auto_arp_tables"]`|Populate the ARP table of hosts with the MAC addresses of all the hosts in the same subnet. This prevents the exchange of ARP requests among hosts.|boolean|
|`obj["topology"]["switches"][<switch_name>]["program"]`|`obj["topology"]["switches"][<switch_name>]["p4_src"]`|Switch-specific P4 source.|If not specified, the source from `obj["p4_src"]` will be used.|string|
### Python Network Configuration
克隆仓库

P4-Learning Documentation

  • Getting Started
  • Migrate to the new version
  • BMv2 Simple Switch
  • Control Plane
  • Debugging and Troubleshooting
  • Scapy
  • FAQ

沪ICP备19002739号