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

VOQ Inband interface support. #2

Open
wants to merge 89 commits into
base: chassis-voq-pr1
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
1acf60e
Implementation of System ports initialization, Interface & Neighbor S…
minionatwork Jan 17, 2021
e800c9f
[logfile]: Add option to specify swss rec file name (#1546)
arlakshm Jan 22, 2021
f4c3579
Enhance dynamic buffer calculation and bug fixes (#1601)
stephenxs Jan 22, 2021
f4e8245
[fpmsyncd] Skip routes to eth0 or docker0 (#1606)
shi-su Jan 25, 2021
f4aefba
[Mux] Fix repeating logs in case of tunnel creation fail (#1610)
prsunny Jan 26, 2021
bbd2ca6
[crm]: Ignore unsupported/non-implemented switch attributes (#1613)
PrabhuSreenivasan Jan 28, 2021
008325c
[PortsOrch] Add reference counting to ports for ACL bindings (#1614)
chaoskao Jan 28, 2021
91e231c
[portsorch] Configure hostif tagging for subports (#1573)
vsenchyshyn Jan 28, 2021
dd4e409
[MACsecMgr]: Add MACsec Manager (#1475)
Pterosaur Jan 29, 2021
832815e
[orchagent]: Add MACsec Orchagent (#1474)
Pterosaur Jan 29, 2021
288fb40
Changed Error log to Notice log during FDB flush notification after V…
madhanmellanox Jan 29, 2021
5384ace
Reduce noise during frequent route update (#1624)
prsunny Feb 4, 2021
c7f27c8
[cfgmgr]: Integrate MACsecMGR with sonic-buildimage (#1627)
Pterosaur Feb 4, 2021
0b0d24c
[Mux] Route handling based on mux status, kernel tunnel support (#1615)
prsunny Feb 4, 2021
1438a70
Fix the compiling errors in gcc9 (#1621)
stephenxs Feb 6, 2021
5fa2329
Support shared headroom pool on top of dynamic buffer calculation (#1…
stephenxs Feb 7, 2021
189a964
[buffermgr] Support maximum port headroom checking (#1607)
stephenxs Feb 7, 2021
6554b5d
[tests] Remove legacy saiattributelist.h dependency (#1608)
kcudnik Feb 8, 2021
b8193d1
Migrate serdes programming to port serdes object (#1611)
dgsudharsan Feb 9, 2021
aaa7bf2
Log level change from ERR to INFO for fetch systemports issue (#1632)
vaibhavhd Feb 10, 2021
8739791
[ci]: use build template (#1633)
lguohan Feb 10, 2021
3f11a50
[Mux] Neighbor handling based on FDB entry (#1631)
prsunny Feb 11, 2021
0dea91c
[test_virtual_chassis]: use wait_for function to improve test robustness
lguohan Feb 12, 2021
f9d5959
[ci]: run vstest
lguohan Feb 11, 2021
32bc1b6
[bufferorch] Handle NOT IMPLEMENTED status returned during set attr o…
neethajohn Feb 13, 2021
f2854f8
spell check fixes (#1630)
liat-grozovik Feb 14, 2021
1238076
[test_virtual_chassis]: use wait_for to make test more robust (#1640)
lguohan Feb 15, 2021
de03dd7
fixed unsupported resource issue (#1641)
PrabhuSreenivasan Feb 15, 2021
710df0c
Add SAI_INGRESS_PRIORITY_GROUP_STAT_DROPPED_PACKETS counter, create n…
ayurkiv-nvda Feb 17, 2021
459848f
Remove useless header in macsecorch (#1628)
Pterosaur Feb 17, 2021
c49668e
[vstest/subintf] Update vs tests to validate physical port host inter…
wendani Feb 17, 2021
d407bc8
[vstest]: add dvs_route fixture
lguohan Jan 2, 2021
20ee836
[vstest/nhg]: use dvs_route fixture to make test_nhg more robust
lguohan Feb 17, 2021
16cd6c2
[orchagent] Increase SAI REDIS response timeout to support FW upgrade…
liorghub Feb 22, 2021
97b3913
Updated PFCWD to use single ACL table for PFCWD and MUX (#1620)
vmittal-msft Feb 23, 2021
99cfd58
[acl] Enable VLAN ID qualifier for ACL rules (#1648)
daall Feb 23, 2021
1d33881
[synchronous mode] Add failure notification for SAI failures in synch…
shi-su Feb 24, 2021
721f47d
Added changes to handle dependency check in FdbSyncd and FpmSyncd for…
nkelapur Mar 3, 2021
a02d888
Update StateDB with error if state change failed, Update APP_DB in al…
prsunny Mar 4, 2021
c2cbeb5
[ci]: Purge swss before install (#1654)
wendani Mar 5, 2021
b6db9dd
[intfsorch] Create subport with the entry contains necessary attribut…
peter-yu Mar 5, 2021
0cce6db
[portorch] parse on/off value from autoneg (#1658)
dmytroxshevchuk Mar 5, 2021
0fa4d74
[linksync] Netdev oper status determination using IFF_RUNNING (#1568)
vganesan-nokia Mar 5, 2021
03a0e21
[mux] VS test for neigh, route and fdb (#1656)
prsunny Mar 7, 2021
9031867
Keep attribute order in bulk mode (#1659)
shi-su Mar 8, 2021
85ff67c
Remove vxlanmgrd dependency on orchagent (#1647)
RajeshPukhrajJain Mar 8, 2021
9e30abb
[vstest/subintf] Add vs test case to validate processing sequence of …
wendani Mar 10, 2021
b0c2a74
Add table descriptions for dynamic buffer calculation to the document…
stephenxs Mar 10, 2021
1951365
[vog/systemlag] Voq lagid allocator (#1603)
vganesan-nokia Mar 11, 2021
e6d9790
[MUX/PFCWD] Use in_ports for acls instead of seperate ACL table (#1670)
prsunny Mar 17, 2021
48dc60e
[nbrmgrd] added function to parse IP address from APP_DB (#1672)
vadymhlushko-mlnx Mar 18, 2021
1382f7a
[acl] Move ACL table constants to acltable.h (#1671)
daall Mar 18, 2021
908e0c6
[Dynamic buffer calc] Bug fix: Remove PGs from an administratively do…
stephenxs Mar 18, 2021
901211f
Revert "[Dynamic buffer calc] Bug fix: Remove PGs from an administrat…
neethajohn Mar 20, 2021
cd6ffd2
reduce severity of log to info in case of flush on non-existing membe…
allas-nvidia Mar 21, 2021
acfcb85
Revert "[buffermgr] Support maximum port headroom checking (#1607)" (…
prsunny Mar 21, 2021
a0a7e9a
Deactivate mirror session only when session status is true in updateL…
shi-su Mar 22, 2021
306b942
[MuxOrch] FDB ageout safety check (#1674)
prsunny Mar 23, 2021
de5fb41
Handle the clear request for 'Q_SHARED_ALL' (#1653)
bratashX Mar 23, 2021
242189b
[Dynamic Buffer Calc] Enhance the field checking in table handling (#…
stephenxs Mar 26, 2021
5adb73e
Initialize system port type variable (#1681)
prsunny Mar 26, 2021
89d0728
Revert "Revert "[buffermgr] Support maximum port headroom checking (#…
prsunny Mar 26, 2021
c7a9c05
Stablize the test case (#1679)
stephenxs Mar 29, 2021
8eb2326
Remove PGs from an administratively down port. (#1677)
stephenxs Mar 29, 2021
15818ad
[SFlowMgr] Sflow Crash on 200G ports handled (#1683)
vivekrnv Mar 29, 2021
fa983d2
Add failure notification for orchagent (#1665)
shi-su Mar 31, 2021
691bd30
[voq/systemlag] Voq system lag functionality (#1605)
vganesan-nokia Mar 31, 2021
ae5f051
Fix dynamic buffer bug occuring in rare condition (#1678)
stephenxs Apr 1, 2021
aac71e6
Don't update pools when ingress_lossless_pool is created but the init…
stephenxs Apr 1, 2021
cba6576
Correct the sflow default sample rate (#1623)
fredyu190011 Apr 1, 2021
73cbd91
[Makefile] Reorder libsaimetadata and libswsscommon (#1689)
kcudnik Apr 3, 2021
872b5cb
[ci]: archive swss pytests (#1690)
lguohan Apr 3, 2021
637e8d0
Skip Macsec test case till macsec orch code is made SAIv1.8.0 compati…
abdosi Apr 5, 2021
66e1aab
[Dynamic Buffer Calc] Enhancement: coding style and LGTM alerts (#1693)
stephenxs Apr 6, 2021
5c63670
[intfmgrd] reach reconciled state at start when there are no interfac…
volodymyrsamotiy Apr 7, 2021
ca8ba6d
[vlan] Add support of VLAN host interface (#1645)
volodymyrsamotiy Apr 8, 2021
a4e05a7
[vstest] System lag test timing issue fix (#1692)
vganesan-nokia Apr 9, 2021
97f70d1
NAT : Update the CRM used counters for SNAT and DNAT entries (#1655)
AkhileshSamineni Apr 9, 2021
d8b8ca9
fix for CRM available bug (#1699)
qbdwlr Apr 9, 2021
b1288b9
[swss]Inband interface setup for voq systems
Dec 10, 2020
723b4e4
[inbandif]Changes to handle port type inband processing
Dec 15, 2020
06e9068
[inbandif] VS tests for inbandif and remote neigh in asic db
Dec 17, 2020
a42c346
[inbandif]VOQ Inband intf support - code review comments fix - 1
Dec 21, 2020
ea0b9fd
[voq/inband]Inband port name change
Feb 6, 2021
3367364
[voq/inbandif]Code review comments fix 2
Feb 12, 2021
ec89157
[voq/inbandif]Code review comments fix 3
Feb 17, 2021
99f7d98
[linksync]voq-inbandif-port pr rebase merge issue fix
Mar 31, 2021
8691db4
[vstest]VOQ system neighbor delete test
Apr 1, 2021
d73e068
[neighorch] VOQ Inband port review comments fix 4
Apr 10, 2021
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
85 changes: 85 additions & 0 deletions .azure-pipelines/build-docker-sonic-vs-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
parameters:
- name: arch
type: string
values:
- amd64
- armhf
- arm64
default: amd64

- name: timeout
type: number
default: 60

- name: swss_artifact_name
type: string

- name: sairedis_artifact_name
type: string

- name: swss_common_artifact_name
type: string

- name: artifact_name
type: string

jobs:
- job:
displayName: ${{ parameters.arch }}
timeoutInMinutes: ${{ parameters.timeout }}

pool:
vmImage: 'ubuntu-20.04'

steps:
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 9
artifact: ${{ parameters.swss_common_artifact_name }}
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss common deb packages"
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 12
artifact: ${{ parameters.sairedis_artifact_name }}
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic sairedis deb packages"
- task: DownloadPipelineArtifact@2
inputs:
artifact: ${{ parameters.swss_artifact_name }}
displayName: "Download sonic swss artifact"
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 1
artifact: sonic-buildimage.vs
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic buildimage"
- script: |
echo $(Build.DefinitionName).$(Build.BuildNumber)

docker load < ../target/docker-sonic-vs.gz

mkdir -p .azure-pipelines/docker-sonic-vs/debs

cp -v ../*.deb .azure-pipelines/docker-sonic-vs/debs

pushd .azure-pipelines

docker build --no-cache -t docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) docker-sonic-vs

popd

docker save docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) | gzip -c > $(Build.ArtifactStagingDirectory)/docker-sonic-vs.gz

- publish: $(Build.ArtifactStagingDirectory)/
artifact: ${{ parameters.artifact_name }}
displayName: "Archive sonic docker vs image"
112 changes: 112 additions & 0 deletions .azure-pipelines/build-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
parameters:
- name: arch
type: string
values:
- amd64
- armhf
- arm64
default: amd64

- name: pool
type: string
values:
- sonicbld
- default
default: default

- name: timeout
type: number
default: 60

- name: sonic_slave
type: string

- name: sairedis_artifact_name
type: string

- name: swss_common_artifact_name
type: string

- name: artifact_name
type: string

- name: archive_pytests
type: boolean
default: false

jobs:
- job:
displayName: ${{ parameters.arch }}
timeoutInMinutes: ${{ parameters.timeout }}

pool:
${{ if ne(parameters.pool, 'default') }}:
name: ${{ parameters.pool }}
${{ if eq(parameters.pool, 'default') }}:
vmImage: 'ubuntu-20.04'

container:
image: sonicdev-microsoft.azurecr.io:443/${{ parameters.sonic_slave }}:latest

steps:
- script: |
sudo apt-get install -y libhiredis0.14 libhiredis-dev
sudo apt-get install -y libzmq5 libzmq3-dev
sudo apt-get install -qq -y \
libhiredis-dev \
libnl-3-dev \
libnl-genl-3-dev \
libnl-route-3-dev \
libnl-nf-3-dev \
swig3.0
sudo apt-get install -y libdbus-1-3
sudo apt-get install -y libteam-dev \
libteam5 \
libteamdctl0
displayName: "Install dependencies"
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 9
artifacts: ${{ parameters.swss_common_artifact_name }}
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss common deb packages"
- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 12
artifacts: ${{ parameters.sairedis_artifact_name }}
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic sairedis deb packages"
- script: |
sudo dpkg -i ${{ parameters.swss_common_artifact_name }}/libswsscommon_1.0.0_${{ parameters.arch }}.deb
sudo dpkg -i ${{ parameters.swss_common_artifact_name }}/libswsscommon-dev_1.0.0_${{ parameters.arch }}.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaivs_*.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaivs-dev_*.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsairedis_*.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsairedis-dev_*.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaimetadata_*.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/libsaimetadata-dev_*.deb
sudo dpkg -i ${{ parameters.sairedis_artifact_name }}/syncd-vs_*.deb
workingDirectory: $(Pipeline.Workspace)
displayName: "Install sonic swss common and sairedis"
- checkout: self
submodules: true
- script: |
set -x
tar czf pytest.tgz tests
cp -r pytest.tgz $(Build.ArtifactStagingDirectory)/
./autogen.sh
dpkg-buildpackage -us -uc -b -j$(nproc) && cp ../*.deb .
displayName: "Compile sonic swss"
- publish: $(System.DefaultWorkingDirectory)/
artifact: ${{ parameters.artifact_name }}
displayName: "Archive swss debian packages"
- publish: $(Build.ArtifactStagingDirectory)/
artifact: sonic-swss-pytests
displayName: "Archive swss pytests"
condition: eq('${{ parameters.archive_pytests }}', true)
87 changes: 87 additions & 0 deletions .azure-pipelines/build_and_install_module.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#!/bin/bash
#
# build and install team/vrf driver
#

set -e

source /etc/os-release

function build_and_install_kmodule()
{
if sudo modprobe team 2>/dev/null && sudo modprobe vrf 2>/dev/null && sudo modprobe macsec 2>/dev/null; then
echo "The module team, vrf and macsec exist."
return
fi

[ -z "$WORKDIR" ] && WORKDIR=$(mktemp -d)
cd $WORKDIR

KERNEL_RELEASE=$(uname -r)
KERNEL_MAINVERSION=$(echo $KERNEL_RELEASE | cut -d- -f1)
EXTRAVERSION=$(echo $KERNEL_RELEASE | cut -d- -f2)
LOCALVERSION=$(echo $KERNEL_RELEASE | cut -d- -f3)
VERSION=$(echo $KERNEL_MAINVERSION | cut -d. -f1)
PATCHLEVEL=$(echo $KERNEL_MAINVERSION | cut -d. -f2)
SUBLEVEL=$(echo $KERNEL_MAINVERSION | cut -d. -f3)

# Install the required debian packages to build the kernel modules
apt-get install -y build-essential linux-headers-${KERNEL_RELEASE} autoconf pkg-config fakeroot
apt-get install -y flex bison libssl-dev libelf-dev
apt-get install -y libnl-route-3-200 libnl-route-3-dev libnl-cli-3-200 libnl-cli-3-dev libnl-3-dev

# Add the apt source mirrors and download the linux image source code
cp /etc/apt/sources.list /etc/apt/sources.list.bk
sed -i "s/^# deb-src/deb-src/g" /etc/apt/sources.list
apt-get update
apt-get source linux-image-unsigned-$(uname -r) > source.log

# Recover the original apt sources list
cp /etc/apt/sources.list.bk /etc/apt/sources.list
apt-get update

# Build the Linux kernel module drivers/net/team and vrf
cd $(find . -maxdepth 1 -type d | grep -v "^.$")
make allmodconfig
mv .config .config.bk
cp /boot/config-$(uname -r) .config
grep NET_TEAM .config.bk >> .config
echo CONFIG_NET_VRF=m >> .config
echo CONFIG_MACSEC=m >> .config
make VERSION=$VERSION PATCHLEVEL=$PATCHLEVEL SUBLEVEL=$SUBLEVEL EXTRAVERSION=-${EXTRAVERSION} LOCALVERSION=-${LOCALVERSION} modules_prepare
make M=drivers/net/team
mv drivers/net/Makefile drivers/net/Makefile.bak
echo 'obj-$(CONFIG_NET_VRF) += vrf.o' > drivers/net/Makefile
echo 'obj-$(CONFIG_MACSEC) += macsec.o' >> drivers/net/Makefile
make M=drivers/net

# Install the module
TEAM_DIR=$(echo /lib/modules/$(uname -r)/kernel/net/team)
NET_DIR=$(echo /lib/modules/$(uname -r)/kernel/net)
if [ ! -e "$TEAM_DIR/team.ko" ]; then
mkdir -p $TEAM_DIR
cp drivers/net/team/*.ko $TEAM_DIR/
modinfo $TEAM_DIR/team.ko
depmod
modprobe team
fi
if [ ! -e "$NET_DIR/vrf.ko" ]; then
mkdir -p $NET_DIR
cp drivers/net/vrf.ko $NET_DIR/
modinfo $NET_DIR/vrf.ko
depmod
modprobe vrf
fi
if [ ! -e "$NET_DIR/macsec.ko" ]; then
mkdir -p $NET_DIR
cp drivers/net/macsec.ko $NET_DIR/
modinfo $NET_DIR/macsec.ko
depmod
modprobe macsec
fi

cd /tmp
rm -rf $WORKDIR
}

build_and_install_kmodule
17 changes: 17 additions & 0 deletions .azure-pipelines/docker-sonic-vs/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
FROM docker-sonic-vs

ARG docker_container_name

ADD ["debs", "/debs"]

RUN dpkg -i /debs/libswsscommon_1.0.0_amd64.deb
RUN dpkg -i /debs/python-swsscommon_1.0.0_amd64.deb
RUN dpkg -i /debs/python3-swsscommon_1.0.0_amd64.deb

RUN dpkg -i /debs/libsaimetadata_1.0.0_amd64.deb
RUN dpkg -i /debs/libsairedis_1.0.0_amd64.deb
RUN dpkg -i /debs/libsaivs_1.0.0_amd64.deb
RUN dpkg -i /debs/syncd-vs_1.0.0_amd64.deb

RUN dpkg --purge swss
RUN dpkg -i /debs/swss_1.0.0_amd64.deb
70 changes: 70 additions & 0 deletions .azure-pipelines/test-docker-sonic-vs-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
parameters:
- name: timeout
type: number
default: 180

- name: log_artifact_name
type: string

jobs:
- job:
displayName: vstest
timeoutInMinutes: ${{ parameters.timeout }}

pool:
vmImage: 'ubuntu-20.04'

steps:
- task: DownloadPipelineArtifact@2
inputs:
artifact: docker-sonic-vs
displayName: "Download docker sonic vs image"

- task: DownloadPipelineArtifact@2
inputs:
source: specific
project: build
pipeline: 9
artifact: sonic-swss-common.amd64.ubuntu20_04
runVersion: 'latestFromBranch'
runBranch: 'refs/heads/master'
displayName: "Download sonic swss common deb packages"

- script: |
set -x
sudo .azure-pipelines/build_and_install_module.sh

sudo apt-get install -y libhiredis0.14
sudo dpkg -i --force-confask,confnew ../libswsscommon_1.0.0_amd64.deb || apt-get install -f
sudo dpkg -i ../python3-swsscommon_1.0.0_amd64.deb

# install packages for vs test
sudo apt-get install -y net-tools bridge-utils vlan
sudo apt-get install -y python3-pip
sudo pip3 install pytest==4.6.2 attrs==19.1.0 exabgp==4.0.10 distro==1.5.0 docker==4.4.1 redis==3.3.4 flaky==3.7.0
displayName: "Install dependencies"

- script: |
set -x
sudo docker load -i ../docker-sonic-vs.gz
docker ps
ip netns list
pushd tests
sudo py.test -v --force-flaky --junitxml=tr.xml --imgname=docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber)
displayName: "Run vs tests"

- task: PublishTestResults@2
inputs:
testResultsFiles: '**/tr.xml'
testRunTitle: vstest
condition: always()

- script: |
cp -r tests/log $(Build.ArtifactStagingDirectory)/
displayName: "Collect logs"
condition: always()

- publish: $(Build.ArtifactStagingDirectory)/
artifact: ${{ parameters.log_artifact_name }}@$(System.JobAttempt)
displayName: "Publish logs"
condition: always()
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ cfgmgr/vrfmgrd
cfgmgr/vxlanmgrd
cfgmgr/natmgrd
cfgmgr/sflowmgrd
cfgmgr/macsecmgrd
fpmsyncd/fpmsyncd
gearsyncd/gearsyncd
mclagsyncd/mclagsyncd
Expand Down
Loading