[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"]
|
[submodule "sonic-swss"]
|
||||||
path = src/sonic-swss
|
path = src/sonic-swss
|
||||||
url = https://github.com/Azure/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"]
|
[submodule "src/p4c-bm/p4c-bm"]
|
||||||
path = platform/p4/p4c-bm/p4c-bm
|
path = platform/p4/p4c-bm/p4c-bm
|
||||||
url = https://github.com/krambn/p4c-bm
|
url = https://github.com/krambn/p4c-bm
|
||||||
@ -68,3 +62,9 @@
|
|||||||
[submodule "src/sonic-frr/frr"]
|
[submodule "src/sonic-frr/frr"]
|
||||||
path = src/sonic-frr/frr
|
path = src/sonic-frr/frr
|
||||||
url = https://github.com/FRRouting/frr.git
|
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)_PATH = $(PLATFORM_PATH)/docker-sonic-p4
|
||||||
$(DOCKER_SONIC_P4)_DEPENDS += $(SWSS) $(SYNCD) $(P4_SWITCH) $(REDIS_SERVER) $(REDIS_TOOLS) $(LIBTEAMDCT) $(LIBTEAM_UTILS)
|
$(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)
|
$(DOCKER_SONIC_P4)_DEPENDS += $(QUAGGA)
|
||||||
else ifeq ($(ROUTING_STACK), frr)
|
# else ifeq ($(ROUTING_STACK), frr)
|
||||||
$(DOCKER_SONIC_P4)_DEPENDS += $(FRR)
|
# $(DOCKER_SONIC_P4)_DEPENDS += $(FRR)
|
||||||
else
|
# else
|
||||||
$(DOCKER_SONIC_P4)_DEPENDS += $(GOBGP)
|
# $(DOCKER_SONIC_P4)_DEPENDS += $(GOBGP)
|
||||||
endif
|
# endif
|
||||||
|
|
||||||
$(DOCKER_SONIC_P4)_LOAD_DOCKERS += $(DOCKER_BASE)
|
$(DOCKER_SONIC_P4)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||||
SONIC_DOCKER_IMAGES += $(DOCKER_SONIC_P4)
|
SONIC_DOCKER_IMAGES += $(DOCKER_SONIC_P4)
|
||||||
|
@ -20,6 +20,7 @@ debs/{{ deb }}{{' '}}
|
|||||||
|
|
||||||
ADD port_config.ini /port_config.ini
|
ADD port_config.ini /port_config.ini
|
||||||
ADD startup.sh /scripts/startup.sh
|
ADD startup.sh /scripts/startup.sh
|
||||||
|
ADD run_bm.sh /scripts/run_bm.sh
|
||||||
|
|
||||||
ADD rsyslog.conf /etc/rsyslog.conf
|
ADD rsyslog.conf /etc/rsyslog.conf
|
||||||
|
|
||||||
|
@ -1,5 +1,33 @@
|
|||||||
# alias lanes
|
# name lanes
|
||||||
Ethernet0 1
|
Ethernet0 0
|
||||||
Ethernet1 2
|
Ethernet1 1
|
||||||
Ethernet2 3
|
Ethernet2 2
|
||||||
Ethernet3 4
|
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
|
#Set remote syslog server
|
||||||
*.* @172.17.0.1:514
|
*.* @172.17.0.1:514
|
||||||
|
#Set local syslog
|
||||||
|
#*.* /var/log/messages
|
||||||
|
|
||||||
#
|
#
|
||||||
# Use traditional timestamp format.
|
# 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
|
service rsyslog start
|
||||||
|
|
||||||
echo "Start redis server"
|
echo "Start redis server"
|
||||||
service redis-server start
|
service redis-server start &
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
redis-cli flushall
|
||||||
|
|
||||||
echo "Veth setup"
|
echo "Veth setup"
|
||||||
/usr/share/bmpd/tools/veth_setup.sh > /tmp/veth_setup.log 2>&1
|
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
|
|
||||||
|
|
||||||
echo "Start BMV2"
|
echo "Start BMV2"
|
||||||
/run_bm.sh > /tmp/run_bm.log 2>&1 &
|
/scripts/run_bm.sh > /tmp/run_bm.log 2>&1 &
|
||||||
sleep 15
|
sleep 15
|
||||||
|
|
||||||
redis-cli -n 1 set LOGLEVEL DEBUG
|
redis-cli -n 1 set LOGLEVEL DEBUG
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# p4 bmv package
|
# p4 bmv package
|
||||||
|
|
||||||
P4_BMV = p4-bmv2_1.0.0_amd64.deb
|
P4_BMV = sai-p4-bm_1.0.0_amd64.deb
|
||||||
$(P4_BMV)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER)
|
$(P4_BMV)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(P4C_BM)
|
||||||
$(P4_BMV)_RDEPENDS += $(LIBTHRIFT) $(PYTHON_THRIFT) $(THRIFT_COMPILER)
|
$(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)
|
SONIC_DPKG_DEBS += $(P4_BMV)
|
||||||
|
@ -1 +0,0 @@
|
|||||||
Subproject commit a6ccf267bc9c5c31fd40fe5841893e38e03abeb4
|
|
@ -1,5 +1,9 @@
|
|||||||
# p4 bmv package
|
# 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 = python-p4-hlir_0.9.36-1_all.deb
|
||||||
$(P4_HLIR)_SRC_PATH = $(PLATFORM_PATH)/p4-hlir/p4-hlir
|
$(P4_HLIR)_SRC_PATH = $(PLATFORM_PATH)/p4-hlir/p4-hlir
|
||||||
SONIC_PYTHON_STDEB_DEBS += $(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 = p4-sai-adapter_0.1-0_amd64.deb
|
||||||
$(P4_SWITCH)_DEPENDS += $(P4C_BM) $(P4_BMV)
|
$(P4_SWITCH)_DEPENDS += $(LIBTHRIFT_DEV) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(P4_BMV)
|
||||||
$(P4_SWITCH)_RDEPENDS += $(P4C_BM) $(P4_BMV)
|
$(P4_SWITCH)_RDEPENDS += $(LIBTHRIFT) $(PYTHON_THRIFT) $(THRIFT_COMPILER) $(P4_BMV)
|
||||||
$(P4_SWITCH)_SRC_PATH = $(PLATFORM_PATH)/p4-switch
|
$(P4_SWITCH)_SRC_PATH = $(PLATFORM_PATH)/SAI-P4-BM/sai_adapter
|
||||||
SONIC_MAKE_DEBS += $(P4_SWITCH)
|
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 = python-p4c-bm_1.0.0-5415c416-1_all.deb
|
||||||
$(P4C_BM)_SRC_PATH = $(PLATFORM_PATH)/p4c-bm/p4c-bm
|
$(P4C_BM)_SRC_PATH = $(PLATFORM_PATH)/p4c-bm/p4c-bm
|
||||||
$(P4C_BM)_DEPENDS += $(TENJIN) $(P4_HLIR)
|
$(P4C_BM)_DEPENDS += $(TENJIN) $(P4_HLIR) $(P4_HLIR_V1_1)
|
||||||
$(P4C_BM)_RDEPENDS += $(TENJIN) $(P4_HLIR)
|
$(P4C_BM)_RDEPENDS += $(TENJIN) $(P4_HLIR) $(P4_HLIR_V1_1)
|
||||||
SONIC_PYTHON_STDEB_DEBS += $(P4C_BM)
|
SONIC_PYTHON_STDEB_DEBS += $(P4C_BM)
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
include $(PLATFORM_PATH)/p4-switch.mk
|
# include $(PLATFORM_PATH)/p4-softswitch.mk
|
||||||
include $(PLATFORM_PATH)/p4-bmv.mk
|
include $(PLATFORM_PATH)/tenjin.mk
|
||||||
include $(PLATFORM_PATH)/p4-hlir.mk
|
include $(PLATFORM_PATH)/p4-hlir.mk
|
||||||
include $(PLATFORM_PATH)/p4c-bm.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
|
include $(PLATFORM_PATH)/docker-sonic-p4.mk
|
||||||
|
|
||||||
SONIC_ALL += $(DOCKER_SONIC_P4)
|
SONIC_ALL += $(DOCKER_SONIC_P4)
|
||||||
|
@ -9,7 +9,7 @@ MAIN_TARGET = python-tenjin_$(TENJIN_VERSION_FULL)_all.deb
|
|||||||
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
$(addprefix $(DEST)/, $(MAIN_TARGET)): $(DEST)/% :
|
||||||
rm -rf Tenjin-$(TENJIN_VERSION)
|
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
|
tar xzf Tenjin-$(TENJIN_VERSION).tar.gz
|
||||||
|
|
||||||
pushd Tenjin-$(TENJIN_VERSION)
|
pushd Tenjin-$(TENJIN_VERSION)
|
||||||
|
Loading…
Reference in New Issue
Block a user