P4 Developer Day May 2019 (#252)

* Update user-bootstrap to use latest version (#251)

* p4c tests are failing in latest version. So, let's skip it during vagrant provisioning

* Update tutorial to use latest version of P4 tools

Modify switch.py to handle setting default_action
Use --p4runtime-files instead of deprecated --p4runtime-file and
--p4runtime-format flags
Provide standard_metadata for mark_to_drop

* Fix path for ECN exercise
This commit is contained in:
Nate Foster
2019-04-25 21:21:47 -04:00
committed by GitHub
parent 201fcf59a8
commit 01fc378076
50 changed files with 59 additions and 57 deletions

View File

@@ -1,5 +1,5 @@
BMV2_SWITCH_EXE = simple_switch_grpc
NO_P4 = true
P4C_ARGS = --p4runtime-file $(basename $@).p4info --p4runtime-format text
P4C_ARGS = --p4runtime-files $(basename $@).p4.p4info.txt
include ../../utils/Makefile

Before

Width:  |  Height:  |  Size: 154 B

After

Width:  |  Height:  |  Size: 138 B

View File

@@ -99,7 +99,7 @@ control MyIngress(inout headers hdr,
inout standard_metadata_t standard_metadata) {
action drop() {
mark_to_drop();
mark_to_drop(standard_metadata);
}
action set_ecmp_select(bit<16> ecmp_base, bit<32> ecmp_count) {
/* TODO: hash on 5-tuple and save the hash result in meta.ecmp_select
@@ -151,7 +151,7 @@ control MyEgress(inout headers hdr,
hdr.ethernet.srcAddr = smac;
}
action drop() {
mark_to_drop();
mark_to_drop(standard_metadata);
}
table send_frame {
key = {

View File

@@ -1,6 +1,6 @@
{
"target": "bmv2",
"p4info": "build/load_balance.p4info",
"p4info": "build/load_balance.p4.p4info.txt",
"bmv2_json": "build/load_balance.json",
"table_entries": [
{

View File

@@ -1,6 +1,6 @@
{
"target": "bmv2",
"p4info": "build/load_balance.p4info",
"p4info": "build/load_balance.p4.p4info.txt",
"bmv2_json": "build/load_balance.json",
"table_entries": [
{

View File

@@ -1,6 +1,6 @@
{
"target": "bmv2",
"p4info": "build/load_balance.p4info",
"p4info": "build/load_balance.p4.p4info.txt",
"bmv2_json": "build/load_balance.json",
"table_entries": [
{

View File

@@ -99,7 +99,7 @@ control MyIngress(inout headers hdr,
inout metadata meta,
inout standard_metadata_t standard_metadata) {
action drop() {
mark_to_drop();
mark_to_drop(standard_metadata);
}
action set_ecmp_select(bit<16> ecmp_base, bit<32> ecmp_count) {
hash(meta.ecmp_select,
@@ -158,7 +158,7 @@ control MyEgress(inout headers hdr,
hdr.ethernet.srcAddr = smac;
}
action drop() {
mark_to_drop();
mark_to_drop(standard_metadata);
}
table send_frame {
key = {