Summary of changes: - Adding the p4runtime starter code and solution. - Adding NO_P4, BMV2_SWITCH_EXE and P4C_ARGS to utils/Makefile - Updated p4runtime/Makefile to use variables - Adding conversion functions for match and action param values - Separating P4Info and P4Runtime libraries - Updating global README and adding p4runtime/README.md - Disabling screen saver on VM GUI - Adding desktop icons for Terminal, Wireshare and Sublime Text - Updating topo.pdf -> png for Markdown viewing in basic_tunnel and p4runtime READMEs
43 lines
753 B
Makefile
43 lines
753 B
Makefile
BUILD_DIR = build
|
|
PCAP_DIR = pcaps
|
|
LOG_DIR = logs
|
|
|
|
TOPO = topology.json
|
|
P4C = p4c-bm2-ss
|
|
RUN_SCRIPT = ../../utils/run_exercise.py
|
|
|
|
source := $(wildcard *.p4)
|
|
outfile := $(source:.p4=.json)
|
|
|
|
compiled_json := $(BUILD_DIR)/$(outfile)
|
|
|
|
# Define NO_P4 to start BMv2 without a program
|
|
ifndef NO_P4
|
|
run_args += -j $(compiled_json)
|
|
endif
|
|
|
|
# Set BMV2_SWITCH_EXE to override the BMv2 target
|
|
ifdef BMV2_SWITCH_EXE
|
|
run_args += -b $(BMV2_SWITCH_EXE)
|
|
endif
|
|
|
|
all: run
|
|
|
|
run: build
|
|
sudo python $(RUN_SCRIPT) -t $(TOPO) $(run_args)
|
|
|
|
stop:
|
|
sudo mn -c
|
|
|
|
build: dirs $(compiled_json)
|
|
|
|
$(BUILD_DIR)/%.json: %.p4
|
|
$(P4C) --p4v 16 $(P4C_ARGS) -o $@ $<
|
|
|
|
dirs:
|
|
mkdir -p $(BUILD_DIR) $(PCAP_DIR) $(LOG_DIR)
|
|
|
|
clean: stop
|
|
rm -f *.pcap
|
|
rm -rf $(BUILD_DIR) $(PCAP_DIR) $(LOG_DIR)
|