From c70dfb7236129c9348623368c2bfb3245f6aa9a8 Mon Sep 17 00:00:00 2001 From: Sina Ebrahimi <3bin3m@gmail.com> Date: Sun, 19 Jun 2022 20:00:08 +0430 Subject: [PATCH 1/4] Fixed typos in ex.4 make sures -> make sure without digging in the details of RFC2464 -> without digging into the details of RFC2464 --- EXERCISE-4.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EXERCISE-4.md b/EXERCISE-4.md index c314562..c2b4523 100644 --- a/EXERCISE-4.md +++ b/EXERCISE-4.md @@ -102,7 +102,7 @@ For example: #### Check for regressions -To make sures the new changes are not breaking other features, make sure to run +To make sure the new changes are not breaking other features, make sure to run tests for L2 bridging support. make p4-test TEST=bridging @@ -350,7 +350,7 @@ destination address FF:FF:FF:FF:FF:FF, NDP messages are sent to special Ethernet addresses specified by RFC2464. These addresses are prefixed with 33:33 and the last four octets are the last four octets of the IPv6 destination multicast address. The most straightforward way of matching on such IPv6 -broadcast/multicast packets, without digging in the details of RFC2464, is to +broadcast/multicast packets, without digging into the details of RFC2464, is to use a ternary match on `33:33:**:**:**:**`, where `*` means "don't care". For this reason, our solution defines two tables. One that matches in an exact From 36fc167194ff06288fc1877b59480530cd0c0a64 Mon Sep 17 00:00:00 2001 From: Sina Ebrahimi <3bin3m@gmail.com> Date: Sat, 16 Jul 2022 19:04:49 +0430 Subject: [PATCH 2/4] Update main.p4 --- p4src/main.p4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/p4src/main.p4 b/p4src/main.p4 index 3bcd2d1..dac7ce9 100644 --- a/p4src/main.p4 +++ b/p4src/main.p4 @@ -438,8 +438,8 @@ control IngressPipeImpl (inout parsed_headers_t hdr, // block below should use the result (table.hit) to decide how to process // the packet. // - // 3. Create a table for IPv6 routing. An action selector should be use to - // pick a next hop MAC address according to a hash of packet header + // 3. Create a table for IPv6 routing. An action selector should be used + // to pick a next hop MAC address according to a hash of packet header // fields (IPv6 source/destination address and the flow label). Look in // snippets.p4 for an example of an action selector and table using it. // From 818fc086d08e5f2671b4d17c2b2b34a842cb3416 Mon Sep 17 00:00:00 2001 From: Sina Ebrahimi <3bin3m@gmail.com> Date: Sat, 16 Jul 2022 20:05:37 +0430 Subject: [PATCH 3/4] Fixed typos --- EXERCISE-5.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/EXERCISE-5.md b/EXERCISE-5.md index 2f3947c..456c464 100644 --- a/EXERCISE-5.md +++ b/EXERCISE-5.md @@ -46,7 +46,7 @@ of the file). The same IPv6 addresses are used in the Mininet topology script ### Try pinging hosts in different subnets -Similarly to the previous exercise, let's start by using Mininet to verify that +Similar to the previous exercise, let's start by using Mininet to verify that pinging between hosts on different subnets does NOT work. It will be your task to make it work. @@ -120,12 +120,12 @@ in [netcfg.json](mininet/netcfg.json) and the `myStationMac` associated to each switch (also defined in netcfg.json). When an NDP NS packet is received, asking to resolve one of such IPv6 addresses, the `ndp_ns_to_na` action should be invoked with the given `myStationMac` as parameter. The ONOS app will be -responsible of inserting entries in this table according to the content of +responsible for inserting entries in this table according to the content of netcfg.json. The ONOS app already provides a component [NdpReplyComponent.java](app/src/main/java/org/onosproject/ngsdn/tutorial/NdpReplyComponent.java) -responsible of inserting entries in this table. +responsible for inserting entries in this table. The component is currently disabled. You will need to enable and modify it in the next steps, but for now, let's focus on the P4 program. @@ -251,7 +251,7 @@ You are asked to modify the implementation of four methods. * `setUpMyStationTable()`: to insert flow rules for the "My Station" table; -* `createNextHopGroup()`: responsible of creating the ONOS equivalent of a +* `createNextHopGroup()`: responsible for creating the ONOS equivalent of a P4Runtime action profile group for the ECMP selector of the routing table; * `createRoutingRule()`: to create a flow rule for the IPv6 routing table; From 1a703d7f40c6130b74516c6d95e109549fc02a69 Mon Sep 17 00:00:00 2001 From: Sina Ebrahimi <3bin3m@gmail.com> Date: Sun, 17 Jul 2022 16:31:10 +0430 Subject: [PATCH 4/4] Update EXERCISE-6.md --- EXERCISE-6.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EXERCISE-6.md b/EXERCISE-6.md index 5b202de..8b8bd2b 100644 --- a/EXERCISE-6.md +++ b/EXERCISE-6.md @@ -227,8 +227,8 @@ To add new SRv6 policies, you should use the `srv6-insert` command. onos> srv6-insert ``` -Note: In our topology, the SID for spine1 is `3:201:2::` and the SID for spine -is `3:202:2::`. +Note: In our topology, the SID for spine1 is `3:201:2::` and the SID for +spine2 is `3:202:2::`. For example, to add a policy that forwards traffic between h2 and h4 though spine1 and leaf2, you can use the following command: