Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New p4 platform based on SAI behavioral model software switch - pull request to master #1117

Merged
merged 4 commits into from
Nov 7, 2017
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
merged new p4 platform from 1.0.3
Yonatan Piasetzky committed Nov 2, 2017

Verified

This commit was signed with the committer’s verified signature.
addaleax Anna Henningsen
commit fc91aad7674b595060ec2a7ead34feaca9706e7c
12 changes: 6 additions & 6 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -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 change: 1 addition & 0 deletions platform/p4/SAI-P4-BM
Submodule SAI-P4-BM added at d6fa74
1 change: 1 addition & 0 deletions platform/p4/docker-sonic-p4/Dockerfile.j2
Original file line number Diff line number Diff line change
@@ -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

36 changes: 32 additions & 4 deletions platform/p4/docker-sonic-p4/port_config.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,33 @@
# alias lanes
Ethernet0 1
Ethernet1 2
Ethernet2 3
Ethernet3 4
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
2 changes: 2 additions & 0 deletions platform/p4/docker-sonic-p4/rsyslog.conf
Original file line number Diff line number Diff line change
@@ -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 changes: 23 additions & 0 deletions platform/p4/docker-sonic-p4/run_bm.sh
Original file line number Diff line number Diff line change
@@ -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
12 changes: 6 additions & 6 deletions platform/p4/docker-sonic-p4/startup.sh
Original file line number Diff line number Diff line change
@@ -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

echo "Veth setup"
/usr/share/bmpd/tools/veth_setup.sh > /tmp/veth_setup.log 2>&1
redis-cli flushall

echo "Disable IPv6"
/usr/share/bmpd/tools/veth_disable_ipv6.sh > /tmp/veth_disable.log 2>&1
echo "Veth setup"
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
6 changes: 3 additions & 3 deletions platform/p4/p4-bmv.mk
Original file line number Diff line number Diff line change
@@ -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 change: 0 additions & 1 deletion platform/p4/p4-bmv/behavioral-model
Submodule behavioral-model deleted from a6ccf2
4 changes: 4 additions & 0 deletions platform/p4/p4-hlir.mk
Original file line number Diff line number Diff line change
@@ -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 change: 1 addition & 0 deletions platform/p4/p4-hlir/p4-hlir-v1.1
Submodule p4-hlir-v1.1 added at fdee55
12 changes: 6 additions & 6 deletions platform/p4/p4-switch.mk
Original file line number Diff line number Diff line change
@@ -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)
17 changes: 0 additions & 17 deletions platform/p4/p4-switch/Makefile

This file was deleted.

1 change: 0 additions & 1 deletion platform/p4/p4-switch/switch
Submodule switch deleted from e93475
4 changes: 2 additions & 2 deletions platform/p4/p4c-bm.mk
Original file line number Diff line number Diff line change
@@ -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)
8 changes: 5 additions & 3 deletions platform/p4/rules.mk
Original file line number Diff line number Diff line change
@@ -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)