Skip to content

Commit c6ba958

Browse files
authored
Merge pull request #13 from opennetworkinglab/p4-comment
Mostly comments to P4 code and minor refactorings
2 parents f7080d6 + decdb4a commit c6ba958

22 files changed

+391
-265
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ curr_dir_sha := $(shell echo -n "$(curr_dir)" | shasum | cut -c1-7)
1919
app_build_container_name := app-build-${curr_dir_sha}
2020
onos_url := http://localhost:8181/onos
2121
onos_curl := curl --fail -sSL --user onos:rocks --noproxy localhost
22-
app_name := org.p4.srv6-tutorial
22+
app_name := org.onosproject.ngsdn-tutorial
2323

2424
default:
2525
$(error Please specify a make target (see README.md))
@@ -90,6 +90,7 @@ p4-build:
9090
p4-test:
9191
@cd ptf && ./run_tests
9292

93+
# Create container once, use it many times to preserve mvn repo cache.
9394
_create_mvn_container:
9495
@if ! docker container ls -a --format '{{.Names}}' | grep -q ${app_build_container_name} ; then \
9596
docker create -v ${curr_dir}/app:/mvn-src -w /mvn-src --name ${app_build_container_name} ${MAVEN_IMG} mvn clean package; \

app/pom.xml

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,31 @@
1919
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
2020
<modelVersion>4.0.0</modelVersion>
2121

22-
<groupId>org.p4</groupId>
23-
<artifactId>srv6-tutorial</artifactId>
22+
<groupId>org.onosproject</groupId>
23+
<artifactId>ngsdn-tutorial</artifactId>
2424
<version>1.0-SNAPSHOT</version>
2525
<packaging>bundle</packaging>
2626

27-
<description>P4D2 SRv6 tutorial app</description>
28-
<url>http://p4.org</url>
27+
<description>NG-SDN tutorial app</description>
28+
<url>http://www.onosproject.org</url>
2929

3030
<properties>
3131
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3232
<onos.version>2.2.0</onos.version>
33-
<onos.app.name>org.p4.srv6-tutorial</onos.app.name>
34-
<onos.app.title>P4D2 SRv6 Tutorial App</onos.app.title>
33+
<onos.app.name>org.onosproject.ngsdn-tutorial</onos.app.name>
34+
<onos.app.title>NG-SDN Tutorial App</onos.app.title>
3535
<onos.app.origin>p4.org</onos.app.origin>
3636
<onos.app.category>Traffic Steering</onos.app.category>
37-
<onos.app.url>http://p4.org</onos.app.url>
37+
<onos.app.url>http://www.onosproject.org</onos.app.url>
3838
<onos.app.readme>
39-
Provides SRv6 capabilities to a leaf-spine network of P4 switches
39+
Provides IPv6 routing capabilities to a leaf-spine network of P4 switches
4040
</onos.app.readme>
4141
<onos.app.requires>
4242
org.onosproject.drivers.bmv2,
4343
org.onosproject.lldpprovider,
4444
org.onosproject.hostprovider,
4545
org.onosproject.gui
4646
</onos.app.requires>
47-
<maven.compiler.source>1.8</maven.compiler.source>
48-
<maven.compiler.target>1.8</maven.compiler.target>
4947
</properties>
5048

5149
<dependencies>
@@ -159,7 +157,7 @@
159157
<extensions>true</extensions>
160158
<configuration>
161159
<instructions>
162-
<Karaf-Commands>org.p4.p4d2.tutorial.cli</Karaf-Commands>
160+
<Karaf-Commands>org.onosproject.ngsdn.tutorial.cli</Karaf-Commands>
163161
</instructions>
164162
</configuration>
165163
</plugin>

app/src/main/java/org/p4/p4d2/tutorial/AppConstants.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/AppConstants.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial;
17+
package org.onosproject.ngsdn.tutorial;
1818

1919
import org.onosproject.net.pi.model.PiPipeconfId;
2020

2121
public class AppConstants {
2222

23-
public static final String APP_NAME = "org.p4.srv6-tutorial";
24-
public static final PiPipeconfId PIPECONF_ID = new PiPipeconfId("org.p4.srv6-tutorial");
23+
public static final String APP_NAME = "org.onosproject.ngsdn-tutorial";
24+
public static final PiPipeconfId PIPECONF_ID = new PiPipeconfId("org.onosproject.ngsdn-tutorial");
2525

2626
public static final int DEFAULT_FLOW_RULE_PRIORITY = 10;
2727
public static final int INITIAL_SETUP_DELAY = 2; // Seconds.

app/src/main/java/org/p4/p4d2/tutorial/Ipv6RoutingComponent.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/Ipv6RoutingComponent.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial;
17+
package org.onosproject.ngsdn.tutorial;
1818

1919
import com.google.common.collect.Lists;
2020
import org.onlab.packet.Ip6Address;
@@ -60,8 +60,8 @@
6060
import org.osgi.service.component.annotations.Deactivate;
6161
import org.osgi.service.component.annotations.Reference;
6262
import org.osgi.service.component.annotations.ReferenceCardinality;
63-
import org.p4.p4d2.tutorial.common.Srv6DeviceConfig;
64-
import org.p4.p4d2.tutorial.common.Utils;
63+
import org.onosproject.ngsdn.tutorial.common.Srv6DeviceConfig;
64+
import org.onosproject.ngsdn.tutorial.common.Utils;
6565
import org.slf4j.Logger;
6666
import org.slf4j.LoggerFactory;
6767

@@ -73,7 +73,7 @@
7373
import java.util.stream.Collectors;
7474

7575
import static com.google.common.collect.Streams.stream;
76-
import static org.p4.p4d2.tutorial.AppConstants.INITIAL_SETUP_DELAY;
76+
import static org.onosproject.ngsdn.tutorial.AppConstants.INITIAL_SETUP_DELAY;
7777

7878
/**
7979
* App component that configures devices to provide IPv6 routing capabilities
@@ -190,7 +190,7 @@ private void setUpMyStationTable(DeviceId deviceId) {
190190
// Modify P4Runtime entity names to match content of P4Info file (look
191191
// for the fully qualified name of tables, match fields, and actions.
192192
// ---- START SOLUTION ----
193-
final String tableId = "IngressPipeImpl.l2_my_station";
193+
final String tableId = "IngressPipeImpl.my_station_table";
194194

195195
final PiCriterion match = PiCriterion.builder()
196196
.matchExact(
@@ -235,10 +235,10 @@ private GroupDescription createNextHopGroup(int groupId,
235235
// Modify P4Runtime entity names to match content of P4Info file (look
236236
// for the fully qualified name of tables, match fields, and actions.
237237
// ---- START SOLUTION ----
238-
final String tableId = "IngressPipeImpl.l3_table";
238+
final String tableId = "IngressPipeImpl.routing_v6_table";
239239
for (MacAddress nextHopMac : nextHopMacs) {
240240
final PiAction action = PiAction.builder()
241-
.withId(PiActionId.of("IngressPipeImpl.set_l2_next_hop"))
241+
.withId(PiActionId.of("IngressPipeImpl.set_next_hop"))
242242
.withParameter(new PiActionParam(
243243
// Action param name.
244244
PiActionParamId.of("dmac"),
@@ -270,7 +270,7 @@ private FlowRule createRoutingRule(DeviceId deviceId, Ip6Prefix ip6Prefix,
270270
// Modify P4Runtime entity names to match content of P4Info file (look
271271
// for the fully qualified name of tables, match fields, and actions.
272272
// ---- START SOLUTION ----
273-
final String tableId = "IngressPipeImpl.l3_table";
273+
final String tableId = "IngressPipeImpl.routing_v6_table";
274274
final PiCriterion match = PiCriterion.builder()
275275
.matchLpm(
276276
PiMatchFieldId.of("hdr.ipv6.dst_addr"),

app/src/main/java/org/p4/p4d2/tutorial/L2BridgingComponent.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/L2BridgingComponent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial;
17+
package org.onosproject.ngsdn.tutorial;
1818

1919
import org.onlab.packet.MacAddress;
2020
import org.onosproject.core.ApplicationId;
@@ -47,15 +47,15 @@
4747
import org.osgi.service.component.annotations.Deactivate;
4848
import org.osgi.service.component.annotations.Reference;
4949
import org.osgi.service.component.annotations.ReferenceCardinality;
50-
import org.p4.p4d2.tutorial.common.Srv6DeviceConfig;
51-
import org.p4.p4d2.tutorial.common.Utils;
50+
import org.onosproject.ngsdn.tutorial.common.Srv6DeviceConfig;
51+
import org.onosproject.ngsdn.tutorial.common.Utils;
5252
import org.slf4j.Logger;
5353
import org.slf4j.LoggerFactory;
5454

5555
import java.util.Set;
5656
import java.util.stream.Collectors;
5757

58-
import static org.p4.p4d2.tutorial.AppConstants.INITIAL_SETUP_DELAY;
58+
import static org.onosproject.ngsdn.tutorial.AppConstants.INITIAL_SETUP_DELAY;
5959

6060
/**
6161
* App component that configures devices to provide L2 bridging capabilities.

app/src/main/java/org/p4/p4d2/tutorial/MainComponent.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/MainComponent.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.p4.p4d2.tutorial;
1+
package org.onosproject.ngsdn.tutorial;
22

33
import com.google.common.collect.Lists;
44
import org.onlab.util.SharedScheduledExecutors;
@@ -20,8 +20,8 @@
2020
import org.osgi.service.component.annotations.Deactivate;
2121
import org.osgi.service.component.annotations.Reference;
2222
import org.osgi.service.component.annotations.ReferenceCardinality;
23-
import org.p4.p4d2.tutorial.common.Srv6DeviceConfig;
24-
import org.p4.p4d2.tutorial.pipeconf.PipeconfLoader;
23+
import org.onosproject.ngsdn.tutorial.common.Srv6DeviceConfig;
24+
import org.onosproject.ngsdn.tutorial.pipeconf.PipeconfLoader;
2525
import org.slf4j.Logger;
2626
import org.slf4j.LoggerFactory;
2727

@@ -30,10 +30,10 @@
3030
import java.util.concurrent.Executors;
3131
import java.util.concurrent.TimeUnit;
3232

33-
import static org.p4.p4d2.tutorial.AppConstants.APP_NAME;
34-
import static org.p4.p4d2.tutorial.AppConstants.CLEAN_UP_DELAY;
35-
import static org.p4.p4d2.tutorial.AppConstants.DEFAULT_CLEAN_UP_RETRY_TIMES;
36-
import static org.p4.p4d2.tutorial.common.Utils.sleep;
33+
import static org.onosproject.ngsdn.tutorial.AppConstants.APP_NAME;
34+
import static org.onosproject.ngsdn.tutorial.AppConstants.CLEAN_UP_DELAY;
35+
import static org.onosproject.ngsdn.tutorial.AppConstants.DEFAULT_CLEAN_UP_RETRY_TIMES;
36+
import static org.onosproject.ngsdn.tutorial.common.Utils.sleep;
3737

3838
/**
3939
* A component which among other things registers the Srv6DeviceConfig to the

app/src/main/java/org/p4/p4d2/tutorial/NdpReplyComponent.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/NdpReplyComponent.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial;
17+
package org.onosproject.ngsdn.tutorial;
1818

1919
import org.onlab.packet.Ip6Address;
2020
import org.onlab.packet.IpAddress;
@@ -50,15 +50,15 @@
5050
import org.osgi.service.component.annotations.Deactivate;
5151
import org.osgi.service.component.annotations.Reference;
5252
import org.osgi.service.component.annotations.ReferenceCardinality;
53-
import org.p4.p4d2.tutorial.common.Srv6DeviceConfig;
53+
import org.onosproject.ngsdn.tutorial.common.Srv6DeviceConfig;
5454
import org.slf4j.Logger;
5555
import org.slf4j.LoggerFactory;
5656

5757
import java.util.Collection;
5858
import java.util.stream.Collectors;
5959

60-
import static org.p4.p4d2.tutorial.AppConstants.DEFAULT_FLOW_RULE_PRIORITY;
61-
import static org.p4.p4d2.tutorial.AppConstants.INITIAL_SETUP_DELAY;
60+
import static org.onosproject.ngsdn.tutorial.AppConstants.DEFAULT_FLOW_RULE_PRIORITY;
61+
import static org.onosproject.ngsdn.tutorial.AppConstants.INITIAL_SETUP_DELAY;
6262

6363
/**
6464
* App component that configures devices to generate NDP Neighbor Advertisement

app/src/main/java/org/p4/p4d2/tutorial/Srv6Component.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/Srv6Component.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.p4.p4d2.tutorial;
16+
package org.onosproject.ngsdn.tutorial;
1717

1818
import com.google.common.collect.Lists;
1919
import org.onlab.packet.Ip6Address;
@@ -41,16 +41,16 @@
4141
import org.osgi.service.component.annotations.Deactivate;
4242
import org.osgi.service.component.annotations.Reference;
4343
import org.osgi.service.component.annotations.ReferenceCardinality;
44-
import org.p4.p4d2.tutorial.common.Srv6DeviceConfig;
45-
import org.p4.p4d2.tutorial.common.Utils;
44+
import org.onosproject.ngsdn.tutorial.common.Srv6DeviceConfig;
45+
import org.onosproject.ngsdn.tutorial.common.Utils;
4646
import org.slf4j.Logger;
4747
import org.slf4j.LoggerFactory;
4848

4949
import java.util.List;
5050
import java.util.Optional;
5151

5252
import static com.google.common.collect.Streams.stream;
53-
import static org.p4.p4d2.tutorial.AppConstants.INITIAL_SETUP_DELAY;
53+
import static org.onosproject.ngsdn.tutorial.AppConstants.INITIAL_SETUP_DELAY;
5454

5555
/**
5656
* Application which handles SRv6 segment routing.

app/src/main/java/org/p4/p4d2/tutorial/cli/Srv6ClearCommand.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/cli/Srv6ClearCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.p4.p4d2.tutorial.cli;
16+
package org.onosproject.ngsdn.tutorial.cli;
1717

1818
import org.apache.karaf.shell.api.action.Argument;
1919
import org.apache.karaf.shell.api.action.Command;
@@ -24,7 +24,7 @@
2424
import org.onosproject.net.Device;
2525
import org.onosproject.net.DeviceId;
2626
import org.onosproject.net.device.DeviceService;
27-
import org.p4.p4d2.tutorial.Srv6Component;
27+
import org.onosproject.ngsdn.tutorial.Srv6Component;
2828

2929
/**
3030
* SRv6 Transit Clear Command

app/src/main/java/org/p4/p4d2/tutorial/cli/Srv6InsertCommand.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/cli/Srv6InsertCommand.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.p4.p4d2.tutorial.cli;
16+
package org.onosproject.ngsdn.tutorial.cli;
1717

1818
import org.apache.karaf.shell.api.action.Argument;
1919
import org.apache.karaf.shell.api.action.Command;
@@ -26,7 +26,7 @@
2626
import org.onosproject.net.Device;
2727
import org.onosproject.net.DeviceId;
2828
import org.onosproject.net.device.DeviceService;
29-
import org.p4.p4d2.tutorial.Srv6Component;
29+
import org.onosproject.ngsdn.tutorial.Srv6Component;
3030

3131
import java.util.List;
3232
import java.util.stream.Collectors;

app/src/main/java/org/p4/p4d2/tutorial/cli/Srv6SidCompleter.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/cli/Srv6SidCompleter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package org.p4.p4d2.tutorial.cli;
16+
package org.onosproject.ngsdn.tutorial.cli;
1717

1818
import org.apache.karaf.shell.api.action.lifecycle.Service;
1919
import org.apache.karaf.shell.api.console.CommandLine;
@@ -23,7 +23,7 @@
2323
import org.onosproject.cli.AbstractShellCommand;
2424
import org.onosproject.net.config.NetworkConfigService;
2525
import org.onosproject.net.device.DeviceService;
26-
import org.p4.p4d2.tutorial.common.Srv6DeviceConfig;
26+
import org.onosproject.ngsdn.tutorial.common.Srv6DeviceConfig;
2727

2828
import java.util.List;
2929
import java.util.Objects;

app/src/main/java/org/p4/p4d2/tutorial/common/Srv6DeviceConfig.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/common/Srv6DeviceConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial.common;
17+
package org.onosproject.ngsdn.tutorial.common;
1818

1919
import org.onlab.packet.Ip6Address;
2020
import org.onlab.packet.MacAddress;

app/src/main/java/org/p4/p4d2/tutorial/common/Utils.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/common/Utils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial.common;
17+
package org.onosproject.ngsdn.tutorial.common;
1818

1919
import org.onosproject.core.ApplicationId;
2020
import org.onosproject.net.DeviceId;
@@ -48,7 +48,7 @@
4848
import static com.google.common.base.Preconditions.checkNotNull;
4949
import static org.onosproject.net.group.DefaultGroupBucket.createAllGroupBucket;
5050
import static org.onosproject.net.group.DefaultGroupBucket.createCloneGroupBucket;
51-
import static org.p4.p4d2.tutorial.AppConstants.DEFAULT_FLOW_RULE_PRIORITY;
51+
import static org.onosproject.ngsdn.tutorial.AppConstants.DEFAULT_FLOW_RULE_PRIORITY;
5252

5353
public final class Utils {
5454

app/src/main/java/org/p4/p4d2/tutorial/pipeconf/InterpreterImpl.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/pipeconf/InterpreterImpl.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial.pipeconf;
17+
package org.onosproject.ngsdn.tutorial.pipeconf;
1818

1919
import com.google.common.collect.ImmutableList;
2020
import com.google.common.collect.ImmutableMap;
@@ -54,7 +54,7 @@
5454
import static org.onosproject.net.flow.instructions.Instruction.Type.OUTPUT;
5555
import static org.onosproject.net.flow.instructions.Instructions.OutputInstruction;
5656
import static org.onosproject.net.pi.model.PiPacketOperationType.PACKET_OUT;
57-
import static org.p4.p4d2.tutorial.AppConstants.CPU_PORT_ID;
57+
import static org.onosproject.ngsdn.tutorial.AppConstants.CPU_PORT_ID;
5858

5959

6060
/**
@@ -75,9 +75,8 @@ public class InterpreterImpl extends AbstractHandlerBehaviour
7575
.put(Criterion.Type.ETH_SRC, "hdr.ethernet.src_addr")
7676
.put(Criterion.Type.ETH_TYPE, "hdr.ethernet.ether_type")
7777
.put(Criterion.Type.IPV6_DST, "hdr.ipv6.dst_addr")
78-
.put(Criterion.Type.IP_PROTO, "local_metadata.ip_proto")
79-
.put(Criterion.Type.ICMPV4_TYPE, "local_metadata.icmp_type")
80-
.put(Criterion.Type.ICMPV6_TYPE, "local_metadata.icmp_type")
78+
.put(Criterion.Type.IP_PROTO, "hdr.ipv6.next_hdr")
79+
.put(Criterion.Type.ICMPV6_TYPE, "hdr.icmpv6.type")
8180
.build();
8281

8382
/**

app/src/main/java/org/p4/p4d2/tutorial/pipeconf/PipeconfLoader.java renamed to app/src/main/java/org/onosproject/ngsdn/tutorial/pipeconf/PipeconfLoader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.p4.p4d2.tutorial.pipeconf;
17+
package org.onosproject.ngsdn.tutorial.pipeconf;
1818

1919
import org.onosproject.net.behaviour.Pipeliner;
2020
import org.onosproject.net.driver.DriverAdminService;
@@ -40,7 +40,7 @@
4040

4141
import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.BMV2_JSON;
4242
import static org.onosproject.net.pi.model.PiPipeconf.ExtensionType.P4_INFO_TEXT;
43-
import static org.p4.p4d2.tutorial.AppConstants.PIPECONF_ID;
43+
import static org.onosproject.ngsdn.tutorial.AppConstants.PIPECONF_ID;
4444

4545
/**
4646
* Component that builds and register the pipeconf at app activation.

0 commit comments

Comments
 (0)