[saip4]: New p4 platform based on SAI behavioral model software switch (#1117)
* merged new p4 platform from 1.0.3 * reverted SAI-P4-BM to SAI1.0 * changed port_config.ini from alias to name. changed tenjin makefile to https * updated SAI-P4-BM commit
This commit is contained in:
parent
7540893471
commit
28eb62fcff
12
.gitmodules
vendored
12
.gitmodules
vendored
@ -10,12 +10,6 @@
|
||||
[submodule "sonic-swss"]
|
||||
path = src/sonic-swss
|
||||
url = https://github.com/Azure/sonic-swss
|
||||
[submodule "src/p4-switch/switch"]
|
||||
path = platform/p4/p4-switch/switch
|
||||
url = https://github.com/krambn/switch
|
||||
[submodule "src/p4-bmv2/behavioral-model"]
|
||||
path = platform/p4/p4-bmv/behavioral-model
|
||||
url = https://github.com/krambn/behavioral-model
|
||||
[submodule "src/p4c-bm/p4c-bm"]
|
||||
path = platform/p4/p4c-bm/p4c-bm
|
||||
url = https://github.com/krambn/p4c-bm
|
||||
@ -68,3 +62,9 @@
|
||||
[submodule "src/sonic-frr/frr"]
|
||||
path = src/sonic-frr/frr
|
||||
url = https://github.com/FRRouting/frr.git
|
||||
[submodule "platform/p4/p4-hlir/p4-hlir-v1.1"]
|
||||
path = platform/p4/p4-hlir/p4-hlir-v1.1
|
||||
url = https://github.com/p4lang/p4-hlir.git
|
||||
[submodule "platform/p4/SAI-P4-BM"]
|
||||
path = platform/p4/SAI-P4-BM
|
||||
url = https://github.com/Mellanox/SAI-P4-BM.git
|
||||
|
1
platform/p4/SAI-P4-BM
Submodule
1
platform/p4/SAI-P4-BM
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit c25b5aecabbb09270dc805459434ee396792ccb3
|
@ -4,13 +4,13 @@ DOCKER_SONIC_P4 = docker-sonic-p4.gz
|
||||
$(DOCKER_SONIC_P4)_PATH = $(PLATFORM_PATH)/docker-sonic-p4
|
||||
$(DOCKER_SONIC_P4)_DEPENDS += $(SWSS) $(SYNCD) $(P4_SWITCH) $(REDIS_SERVER) $(REDIS_TOOLS) $(LIBTEAMDCT) $(LIBTEAM_UTILS)
|
||||
|
||||
ifeq ($(ROUTING_STACK), quagga)
|
||||
# ifeq ($(ROUTING_STACK), quagga)
|
||||
$(DOCKER_SONIC_P4)_DEPENDS += $(QUAGGA)
|
||||
else ifeq ($(ROUTING_STACK), frr)
|
||||
$(DOCKER_SONIC_P4)_DEPENDS += $(FRR)
|
||||
else
|
||||
$(DOCKER_SONIC_P4)_DEPENDS += $(GOBGP)
|
||||
endif
|
||||
# else ifeq ($(ROUTING_STACK), frr)
|
||||
# $(DOCKER_SONIC_P4)_DEPENDS += $(FRR)
|
||||
# else
|
||||
# $(DOCKER_SONIC_P4)_DEPENDS += $(GOBGP)
|
||||
# endif
|
||||
|
||||
$(DOCKER_SONIC_P4)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SONIC_P4)
|
||||
|
@ -20,6 +20,7 @@ debs/{{ deb }}{{' '}}
|
||||
|
||||
ADD port_config.ini /port_config.ini
|
||||
ADD startup.sh /scripts/startup.sh
|
||||
ADD run_bm.sh /scripts/run_bm.sh
|
||||
|
||||
ADD rsyslog.conf /etc/rsyslog.conf
|
||||
|
||||
|
@ -1,5 +1,33 @@
|
||||
# alias lanes
|
||||
Ethernet0 1
|
||||
Ethernet1 2
|
||||
Ethernet2 3
|
||||
Ethernet3 4
|
||||
# name lanes
|
||||
Ethernet0 0
|
||||
Ethernet1 1
|
||||
Ethernet2 2
|
||||
Ethernet3 3
|
||||
Ethernet4 4
|
||||
Ethernet5 5
|
||||
Ethernet6 6
|
||||
Ethernet7 7
|
||||
Ethernet8 8
|
||||
Ethernet9 9
|
||||
Ethernet10 10
|
||||
Ethernet11 11
|
||||
Ethernet12 12
|
||||
Ethernet13 13
|
||||
Ethernet14 14
|
||||
Ethernet15 15
|
||||
Ethernet16 16
|
||||
Ethernet17 17
|
||||
Ethernet18 18
|
||||
Ethernet19 19
|
||||
Ethernet20 20
|
||||
Ethernet21 21
|
||||
Ethernet22 22
|
||||
Ethernet23 23
|
||||
Ethernet24 24
|
||||
Ethernet25 25
|
||||
Ethernet26 26
|
||||
Ethernet27 27
|
||||
Ethernet28 28
|
||||
Ethernet29 29
|
||||
Ethernet30 30
|
||||
Ethernet31 31
|
@ -31,6 +31,8 @@ $ModLoad imuxsock # provides support for local system logging
|
||||
###########################
|
||||
#Set remote syslog server
|
||||
*.* @172.17.0.1:514
|
||||
#Set local syslog
|
||||
#*.* /var/log/messages
|
||||
|
||||
#
|
||||
# Use traditional timestamp format.
|
||||
|
23
platform/p4/docker-sonic-p4/run_bm.sh
Executable file
23
platform/p4/docker-sonic-p4/run_bm.sh
Executable file
@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
# handler()
|
||||
# {
|
||||
# kill -s INT $ROUTER_PID
|
||||
# kill -s INT $BRIDGE_PID
|
||||
# }
|
||||
|
||||
set -m
|
||||
ip netns exec sw_net simple_switch -i 0@router_port1 -i 250@router_cpu_port --thrift-port 9091 --log-file /tmp/router_log --log-flush --notifications-addr ipc:///tmp/bmv2-router-notifications.ipc /usr/share/p4-sai-bm/sai_router.json &
|
||||
export ROUTER_PID=$!
|
||||
ip netns exec sw_net simple_switch -i 0@sw_port0 -i 1@sw_port1 -i 2@sw_port2 -i 3@sw_port3 -i 4@sw_port4 -i 5@sw_port5 -i 6@sw_port6 -i 7@sw_port7 -i 7@sw_port7 -i 8@sw_port8 -i 9@sw_port9 -i 10@sw_port10 -i 11@sw_port11 -i 12@sw_port12 -i 13@sw_port13 -i 14@sw_port14 -i 15@sw_port15 -i 16@sw_port16 -i 17@sw_port17 -i 18@sw_port18 -i 19@sw_port19 -i 20@sw_port20 -i 21@sw_port21 -i 22@sw_port22 -i 23@sw_port23 -i 24@sw_port24 -i 25@sw_port25 -i 26@sw_port26 -i 27@sw_port27 -i 28@sw_port28 -i 29@sw_port29 -i 30@sw_port30 -i 31@sw_port31 -i 250@cpu_port -i 251@router_port0 --log-file /tmp/bridge_log --log-flush /usr/share/p4-sai-bm/sai_bridge.json &
|
||||
export BRIDGE_PID=$!
|
||||
sleep 10
|
||||
simple_switch_CLI --pre SimplePreLAG < /usr/share/p4-sai-bm/bridge_default_config.txt
|
||||
simple_switch_CLI < /usr/share/p4-sai-bm/bridge_default_config_mirror.txt
|
||||
simple_switch_CLI --pre SimplePreLAG --thrift-port 9091 < /usr/share/p4-sai-bm/router_default_config.txt
|
||||
simple_switch_CLI --thrift-port 9091 < /usr/share/p4-sai-bm/router_default_config_mirror.txt
|
||||
|
||||
# echo "router and bridge are running send SIGINT to close"
|
||||
|
||||
# trap handler INT
|
||||
# sleep inf
|
||||
# sudo kill -s SIGINT 3319
|
@ -8,16 +8,16 @@ rm -f /var/run/rsyslogd.pid
|
||||
service rsyslog start
|
||||
|
||||
echo "Start redis server"
|
||||
service redis-server start
|
||||
service redis-server start &
|
||||
sleep 3
|
||||
|
||||
redis-cli flushall
|
||||
|
||||
echo "Veth setup"
|
||||
/usr/share/bmpd/tools/veth_setup.sh > /tmp/veth_setup.log 2>&1
|
||||
|
||||
echo "Disable IPv6"
|
||||
/usr/share/bmpd/tools/veth_disable_ipv6.sh > /tmp/veth_disable.log 2>&1
|
||||
veth_setup.sh > /tmp/veth_setup.log 2>&1
|
||||
|
||||
echo "Start BMV2"
|
||||
/run_bm.sh > /tmp/run_bm.log 2>&1 &
|
||||
/scripts/run_bm.sh > /tmp/run_bm.log 2>&1 &
|
||||
sleep 15
|
||||
|
||||
redis-cli -n 1 set LOGLEVEL DEBUG
|
||||
|
@ -1,7 +1,7 @@
|
||||
# p4 bmv package
|
||||
|
||||
P4_BMV = p4-bmv2_1.0.0_amd64.deb
|
||||
$(P4_BMV)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER)
|
||||
P4_BMV = sai-p4-bm_1.0.0_amd64.deb
|
||||
$(P4_BMV)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(P4C_BM)
|
||||
$(P4_BMV)_RDEPENDS += $(LIBTHRIFT) $(PYTHON_THRIFT) $(THRIFT_COMPILER)
|
||||
$(P4_BMV)_SRC_PATH = $(PLATFORM_PATH)/p4-bmv/behavioral-model
|
||||
$(P4_BMV)_SRC_PATH = $(PLATFORM_PATH)/SAI-P4-BM/p4-switch
|
||||
SONIC_DPKG_DEBS += $(P4_BMV)
|
||||
|
@ -1 +0,0 @@
|
||||
Subproject commit a6ccf267bc9c5c31fd40fe5841893e38e03abeb4
|
@ -1,5 +1,9 @@
|
||||
# p4 bmv package
|
||||
|
||||
P4_HLIR_V1_1 = python-p4-hlir-v1-1_1.1.7-1_all.deb
|
||||
$(P4_HLIR_V1_1)_SRC_PATH = $(PLATFORM_PATH)/p4-hlir/p4-hlir-v1.1
|
||||
SONIC_PYTHON_STDEB_DEBS += $(P4_HLIR_V1_1)
|
||||
|
||||
P4_HLIR = python-p4-hlir_0.9.36-1_all.deb
|
||||
$(P4_HLIR)_SRC_PATH = $(PLATFORM_PATH)/p4-hlir/p4-hlir
|
||||
SONIC_PYTHON_STDEB_DEBS += $(P4_HLIR)
|
||||
|
1
platform/p4/p4-hlir/p4-hlir-v1.1
Submodule
1
platform/p4/p4-hlir/p4-hlir-v1.1
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit fdee55e2567fe65463f328d70558b5079894b420
|
@ -1,7 +1,7 @@
|
||||
# p4 switch package
|
||||
# p4 sai adapter package
|
||||
|
||||
P4_SWITCH = p4-switch_1.0.0_amd64.deb
|
||||
$(P4_SWITCH)_DEPENDS += $(P4C_BM) $(P4_BMV)
|
||||
$(P4_SWITCH)_RDEPENDS += $(P4C_BM) $(P4_BMV)
|
||||
$(P4_SWITCH)_SRC_PATH = $(PLATFORM_PATH)/p4-switch
|
||||
SONIC_MAKE_DEBS += $(P4_SWITCH)
|
||||
P4_SWITCH = p4-sai-adapter_0.1-0_amd64.deb
|
||||
$(P4_SWITCH)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(P4_BMV)
|
||||
$(P4_SWITCH)_RDEPENDS += $(LIBTHRIFT) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(P4_BMV)
|
||||
$(P4_SWITCH)_SRC_PATH = $(PLATFORM_PATH)/SAI-P4-BM/sai_adapter
|
||||
SONIC_DPKG_DEBS += $(P4_SWITCH)
|
||||
|
@ -1,17 +0,0 @@
|
||||
SHELL = /bin/bash
|
||||
.ONESHELL:
|
||||
|
||||
MAIN_TARGET = p4-switch_1.0.0_amd64.deb
|
||||
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
pushd switch
|
||||
|
||||
mkdir -p p4-build/bmv2/switch
|
||||
mkdir -p p4-build/bmv2/pd_thrift_gen
|
||||
|
||||
./autogen.sh
|
||||
dpkg-buildpackage -us -uc -b -j4
|
||||
|
||||
popd
|
||||
|
||||
mv $* $(DEST)/
|
@ -1 +0,0 @@
|
||||
Subproject commit e934752f356d3ad48cbec99067f47c83795ddcec
|
@ -2,6 +2,6 @@
|
||||
|
||||
P4C_BM = python-p4c-bm_1.0.0-5415c416-1_all.deb
|
||||
$(P4C_BM)_SRC_PATH = $(PLATFORM_PATH)/p4c-bm/p4c-bm
|
||||
$(P4C_BM)_DEPENDS += $(TENJIN) $(P4_HLIR)
|
||||
$(P4C_BM)_RDEPENDS += $(TENJIN) $(P4_HLIR)
|
||||
$(P4C_BM)_DEPENDS += $(TENJIN) $(P4_HLIR) $(P4_HLIR_V1_1)
|
||||
$(P4C_BM)_RDEPENDS += $(TENJIN) $(P4_HLIR) $(P4_HLIR_V1_1)
|
||||
SONIC_PYTHON_STDEB_DEBS += $(P4C_BM)
|
||||
|
@ -1,8 +1,10 @@
|
||||
include $(PLATFORM_PATH)/p4-switch.mk
|
||||
include $(PLATFORM_PATH)/p4-bmv.mk
|
||||
# include $(PLATFORM_PATH)/p4-softswitch.mk
|
||||
include $(PLATFORM_PATH)/tenjin.mk
|
||||
include $(PLATFORM_PATH)/p4-hlir.mk
|
||||
include $(PLATFORM_PATH)/p4c-bm.mk
|
||||
include $(PLATFORM_PATH)/tenjin.mk
|
||||
# include $(PLATFORM_PATH)/p4-sai-bm.mk
|
||||
include $(PLATFORM_PATH)/p4-bmv.mk
|
||||
include $(PLATFORM_PATH)/p4-switch.mk
|
||||
include $(PLATFORM_PATH)/docker-sonic-p4.mk
|
||||
|
||||
SONIC_ALL += $(DOCKER_SONIC_P4)
|
||||
|
@ -9,7 +9,7 @@ MAIN_TARGET = python-tenjin_$(TENJIN_VERSION_FULL)_all.deb
|
||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||
rm -rf Tenjin-$(TENJIN_VERSION)
|
||||
|
||||
wget -nc http://pypi.python.org/packages/source/T/Tenjin/Tenjin-$(TENJIN_VERSION).tar.gz
|
||||
wget -nc https://pypi.python.org/packages/source/T/Tenjin/Tenjin-$(TENJIN_VERSION).tar.gz
|
||||
tar xzf Tenjin-$(TENJIN_VERSION).tar.gz
|
||||
|
||||
pushd Tenjin-$(TENJIN_VERSION)
|
||||
|
Loading…
Reference in New Issue
Block a user