create P4 basis + smaller updates
Signed-off-by: Nico Schottelius <nico@nico-notebook.schottelius.org>master
parent
7f904bdcef
commit
b6bd281c3a
@ -0,0 +1,9 @@
|
||||
*.pdf
|
||||
plan.tex
|
||||
*.aux
|
||||
*.glo
|
||||
*.lof
|
||||
*.log
|
||||
*.lot
|
||||
*.out
|
||||
*.toc
|
Binary file not shown.
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -x
|
||||
|
||||
# cleanup
|
||||
for i in 1 2 3 4; do
|
||||
mx h$i "ip addr flush dev $dev"
|
||||
done
|
||||
|
||||
# host 1/2+42 need NDP for reaching themselves
|
||||
for i in 1 2; do
|
||||
dev="h$i-eth0"
|
||||
# add and enable ipv6
|
||||
mx h$i "sysctl net.ipv6.conf.{lo,h$i-eth0}.disable_ipv6=0"
|
||||
mx h$i "ip addr add 2001:db8:6::$i/64 dev $dev"
|
||||
mx h$i "ip -6 route add default via 2001:db8:6::42"
|
||||
|
||||
# add neighbors
|
||||
for j in 1 2 42; do
|
||||
mx h$i "ip -6 neigh add 2001:db8:6::${j} dev $dev lladdr 00:00:0a:00:00:0${j}"
|
||||
done
|
||||
done
|
||||
|
||||
# host 3/4 need ARP, also need access to .42 (virtual IP)
|
||||
for i in 3 4; do
|
||||
dev="h$i-eth0"
|
||||
mx h$i "ip addr add 10.0.0.$i/24 dev $dev"
|
||||
|
||||
# add arp
|
||||
for j in 1 2 42; do
|
||||
mx h$i "ip neigh add 10.0.0.${j} dev $dev lladdr 00:00:0a:00:00:${j}"
|
||||
done
|
||||
done
|
||||
|
||||
for i in 1 2 3 4; do
|
||||
mx h$i "ip neigh show"
|
||||
done
|
@ -0,0 +1,28 @@
|
||||
/* -*- P4_16 -*- */
|
||||
#ifndef CHECKSUMS_P4
|
||||
#define CHECKSUMS_P4
|
||||
|
||||
#include <core.p4>
|
||||
#include <v1model.p4>
|
||||
|
||||
#include "headers.p4"
|
||||
|
||||
/*************************************************************************
|
||||
************* C H E C K S U M V E R I F I C A T I O N *************
|
||||
*************************************************************************/
|
||||
|
||||
control MyVerifyChecksum(inout headers hdr, inout metadata meta) {
|
||||
apply {}
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
************** C H E C K S U M C O M P U T A T I O N **************
|
||||
*************************************************************************/
|
||||
|
||||
control MyComputeChecksum(inout headers hdr, inout metadata meta) {
|
||||
apply {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endif
|
@ -0,0 +1,12 @@
|
||||
/* -*- P4_16 -*- */
|
||||
/* table sizes, register widths, and such */
|
||||
#ifndef SETTINGS_P4
|
||||
#define SETTINGS_P4
|
||||
|
||||
#include <core.p4>
|
||||
#include <v1model.p4>
|
||||
|
||||
#define THE_ANSWER_TO_LIFE_THE_UNIVERSE_AND_EVERYTHING 42
|
||||
|
||||
|
||||
#endif
|
@ -0,0 +1,49 @@
|
||||
/* -*- P4_16 -*- */
|
||||
#include <core.p4>
|
||||
#include <v1model.p4>
|
||||
|
||||
#include "headers.p4"
|
||||
#include "parsers.p4"
|
||||
#include "checksums.p4"
|
||||
#include "settings.p4"
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
************** I N G R E S S P R O C E S S I N G *******************
|
||||
*************************************************************************/
|
||||
|
||||
control MyIngress(inout headers hdr,
|
||||
inout metadata meta,
|
||||
inout standard_metadata_t standard_metadata) {
|
||||
|
||||
apply {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
**************** E G R E S S P R O C E S S I N G *******************
|
||||
*************************************************************************/
|
||||
|
||||
control MyEgress(inout headers hdr,
|
||||
inout metadata meta,
|
||||
inout standard_metadata_t standard_metadata) {
|
||||
apply {
|
||||
/* set tcp header valid after modifying it -- keep this in mind*/
|
||||
// hdr.tcp.setValid();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
*********************** S W I T C H *******************************
|
||||
*************************************************************************/
|
||||
|
||||
V1Switch(
|
||||
MyParser(),
|
||||
MyVerifyChecksum(),
|
||||
MyIngress(),
|
||||
MyEgress(),
|
||||
MyComputeChecksum(),
|
||||
MyDeparser()
|
||||
) main;
|
Loading…
Reference in New Issue