Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
3de2ca0
adj: null-check fixup_func before calling in l2/nsh midchain nodes
186526 Jun 29, 2026
f82b08c
Merge pull request #1 from sunoaki/fix/l2-midchain-null-and-neigh-log…
186526 Jun 29, 2026
e19177b
github: add Debian 13 Trixie DEB build workflow
186526 Jun 29, 2026
3158d23
Merge pull request #2 from sunoaki/fix/l2-midchain-null-and-neigh-log…
186526 Jun 29, 2026
04290a6
github: remove github2gerrit mirror workflow
186526 Jun 29, 2026
20371f5
github: remove all Gerrit-related workflows
186526 Jun 29, 2026
8eddcc3
github: fix build-deb workflow per review feedback
186526 Jun 29, 2026
5dd71b8
github: fix sed pattern and safe.directory ordering
186526 Jun 29, 2026
9f651b1
Merge remote-tracking branch 'upstream/master'
Jul 3, 2026
0aca8e0
vnet: fix runtime queue lifecycle hazards
Jul 4, 2026
fe6c28d
http: harden request parsing and status reply
Jul 4, 2026
8555383
svm: close memfd on init failures
Jul 4, 2026
9cd7199
tls: clean up failed DTLS connects
Jul 4, 2026
f8aeee2
vapi: bound socket message receive size
Jul 4, 2026
ac6ca9e
vhost: close received fds on errors
Jul 4, 2026
a8eb935
snort: initialize empty buffer offsets safely
Jul 4, 2026
71af49f
iavf: initialize tx placeholder buffers
Jul 4, 2026
16b632d
iavf: fix placeholder buffer formatting
Jul 4, 2026
2d25be1
http_static: fix disable cleanup edge cases
Jul 4, 2026
12a727c
tracepath: parse cli indexes as unsigned
Jul 4, 2026
1c1c6ef
sfdp: print unsigned ids with unsigned formats
Jul 4, 2026
cdc00aa
Merge pull request #4 from sunoaki/fix/crash-lifecycle-audit
186526 Jul 4, 2026
6c987a0
cnat: harden node lookup cleanup
186526 Jul 20, 2026
bfb7dd5
cnat: make session cleanup lifetime safe
186526 Jul 20, 2026
34e2118
crypto: validate scheduler queue state
186526 Jul 20, 2026
8a3afc2
dpdk: harden interrupt lifecycle
186526 Jul 20, 2026
84288c3
flowprobe: make disable lifecycle transactional
186526 Jul 20, 2026
0ff4a56
memif: validate zero-copy descriptors
186526 Jul 20, 2026
09cbb5e
nat: widen worker index handling
186526 Jul 20, 2026
faa9de9
rdma: close resources on failure
186526 Jul 20, 2026
90a4f3e
rdma: validate device configuration
186526 Jul 20, 2026
79ec9cf
time: keep cpu accounting monotonic
186526 Jul 20, 2026
93e1dbf
svm: report fifo attach failures
186526 Jul 20, 2026
f9adf3e
vlib: harden buffer and handoff cleanup
186526 Jul 20, 2026
02252fa
mem: roll back failed mappings safely
186526 Jul 20, 2026
ec58fd7
api: bound traced message copies
186526 Jul 20, 2026
b941447
dpo: validate replicate counters
186526 Jul 20, 2026
6e691e8
session: propagate fifo migration failures
186526 Jul 20, 2026
98027d1
session: roll back failed fifo migration
186526 Jul 20, 2026
ddda3eb
timer: bound hierarchical expirations
186526 Jul 20, 2026
eea3106
dpdk: switch to shared library build to include hinic PMD
186526 Jul 22, 2026
0069965
Revert "dpdk: switch to shared library build to include hinic PMD"
186526 Jul 22, 2026
9bff4c9
dpdk: force-link hinic PMD with static DPDK
186526 Jul 22, 2026
3077b7c
github: cache Trixie apt archives
186526 Jul 22, 2026
5184291
dpdk: avoid duplicate hinic PMD linkage
186526 Jul 22, 2026
d4a2599
dpdk: allow Huawei Hi1822 devices
186526 Jul 22, 2026
ddd0937
Merge upstream/master into master
Jul 23, 2026
f9cee7a
Merge upstream/master into master
186526 Aug 24, 2026
8346a7c
Merge pull request #6 from FDio/master
186526 Aug 24, 2026
398852c
Merge upstream/master into master
186526 Sep 2, 2026
dcbc5dc
gitignore agent workspace metadata
186526 Sep 2, 2026
3c26fb3
Merge origin/master into master
186526 Sep 2, 2026
88053b6
gre: harden tunnel lifecycle
186526 Sep 2, 2026
9585f21
linux-cp: recover from netlink errors
186526 Sep 2, 2026
e577dce
teib: validate address families
186526 Sep 2, 2026
3fb0ee6
linux-cp: fix netlink error cleanup syntax
186526 Sep 2, 2026
7a9ad8d
fib: guard attached export against bad fib index
186526 Sep 15, 2026
d1d3cc6
linux-cp: drop nexthops on deleted interfaces
186526 Sep 15, 2026
7ee6487
build: make deb version vary per commit
186526 Sep 15, 2026
bc83108
build: keep synthesised deb version above 0.0.0-release
186526 Sep 15, 2026
19caf6f
flowprobe: record l2 flows on vlan sub-interfaces (#7)
186526 Sep 21, 2026
3dbd4af
Merge upstream/master into master
186526 Sep 21, 2026
c1f4126
rdma: initialize the create-if args before freeing them
186526 Sep 21, 2026
3b5cd33
Merge pull request #8 from sunoaki/merge/upstream-20260921
186526 Sep 21, 2026
be3bcc3
dpdk: clear the vnet rx-queue file index on interrupt teardown (#9)
186526 Sep 21, 2026
6d8c176
session: complete the rollback of a failed fifo migration (#10)
186526 Sep 21, 2026
af7f732
vapi, memif: fix failure-path leaks (#11)
186526 Sep 21, 2026
e21c683
teib: drop the peer/next-hop address family check (#12)
186526 Sep 21, 2026
e6695a6
flowprobe: reject an unknown value of which on the replaced tx messag…
186526 Sep 21, 2026
ae0bf74
github: build the deb from the commit the run is for (#14)
186526 Sep 22, 2026
98b1a9a
api: copy traced messages in full (#15)
186526 Sep 22, 2026
060db0f
github: break deb version ties inside the same second (#16)
186526 Sep 22, 2026
46c1e4e
ipsec: unwind a refused tunnel protection; gre: bound the tunnel look…
186526 Sep 22, 2026
61f1b68
cnat: measure the scan budget from inside the barrier (#18)
186526 Sep 22, 2026
64ada0a
ipip: bound the tunnel lookups and fix the teib index checks (#19)
186526 Sep 22, 2026
f6ebc01
pppoe: bound the session lookup by sw_if_index (#20)
186526 Sep 22, 2026
420e5a1
cnat: skip path allocation for an empty path list (#21)
186526 Sep 22, 2026
77f63c0
papi: read the public version attribute of an IP address (#22)
186526 Sep 22, 2026
42eb170
ipip: check the tunnel mode in the 6RD delete path (#23)
186526 Sep 22, 2026
de8a6f0
cnat: bound the snat policy fib index (#24)
186526 Sep 22, 2026
b941ccf
ipip: reject a 6RD tunnel in the generic delete path (#25)
186526 Sep 22, 2026
47b829b
gha: add pull request verification on GitHub-hosted runners (#29)
186526 Sep 22, 2026
0c1ba57
svm: check heap creation in the ssvm init error paths (#32)
186526 Sep 22, 2026
18147b3
vcl: honour optlen in getsockopt writes (#31)
186526 Sep 22, 2026
299cba9
vcl: do not unlock workers_lock before locking it (#33)
186526 Sep 22, 2026
877fad4
vapi: use the payload-only buffer in the socket disconnect drain (#35)
186526 Sep 22, 2026
6cf3d9b
linux-cp: use -1 as the default namespace fd sentinel (#34)
186526 Sep 22, 2026
b72d1f6
gha: run pr-verify steps under bash, not dash (#36)
186526 Sep 22, 2026
ffabf0e
fib: validate the fib table index at interface-derived lookups (#26)
186526 Sep 22, 2026
937348f
span: validate sw_if_index in the enable/disable API (#30)
186526 Sep 22, 2026
46177b1
api: bound the API message length before tracing (#28)
186526 Sep 22, 2026
ab774c3
nat: guard the nat64 BIB/ST logging fib read (#27)
186526 Sep 22, 2026
c938cbd
gha: derive only test modules that exist (#37)
186526 Sep 22, 2026
a804b1c
nat: drop the leftover suite-derivation probe file
186526 Sep 22, 2026
45684c4
docs: add AGENTS.md describing this VPP tree
186526 Sep 22, 2026
7032538
vpp: bound IAC handling by rx_buf_len in vppctl
186526 Sep 22, 2026
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
34 changes: 0 additions & 34 deletions .github/actions/vpp-checkout-gerrit-change/README.md

This file was deleted.

53 changes: 0 additions & 53 deletions .github/actions/vpp-checkout-gerrit-change/action.yml

This file was deleted.

189 changes: 189 additions & 0 deletions .github/workflows/build-deb-trixie.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
name: Build VPP DEB for Debian 13 (Trixie)

on:
push:
branches: [master]
workflow_dispatch:
inputs:
release:
description: "Publish as GitHub Release"
type: boolean
default: false
tag:
description: "Release tag (if publishing)"
type: string
default: ""

jobs:
build:
runs-on: ubuntu-24.04
permissions:
contents: write
container:
image: debian:trixie
env:
CCACHE_COMPRESS: "true"
CCACHE_MAXSIZE: 2G
steps:
- name: Disable APT cache cleanup
run: rm -f /etc/apt/apt.conf.d/docker-clean

- name: Install base tools
run: |
apt-get update -qq
apt-get install -y -qq sudo make git

- name: Clone repository
run: |
git clone --depth 1 --branch "$GITHUB_REF_NAME" \
"https://github.com/$GITHUB_REPOSITORY.git" .
# The branch can move between the event and this clone, so check out
# the commit the run is for instead of whatever the branch points at
# now; otherwise the debs and their version string would name a
# different commit than the run and the release body do.
git config --global --add safe.directory "$PWD"
if [ "$(git rev-parse HEAD)" != "$GITHUB_SHA" ]; then
git fetch --no-tags --depth 1 origin "$GITHUB_SHA"
git checkout --detach FETCH_HEAD
fi

# "make install-dep" below is the only step that reads this cache, and
# the package list it installs, $(DEB_DEPENDS), is defined in the
# Makefile. Key the cache by that file, so the key moves when the
# package list moves: the run that first needs a new package is then the
# run that stores it. Hash it into an output rather than with
# hashFiles, because the install step rewrites the Makefile between the
# restore and the save and both steps have to ask for the same key.
# Reading the file at all needs the clone, and the base tools install
# above runs before this point, so it reads no cache.
- name: Hash the dependency list
id: deps
shell: bash
run: echo "hash=$(git hash-object Makefile)" >> $GITHUB_OUTPUT

- name: Restore apt archive cache
uses: actions/cache/restore@v4
with:
path: /var/cache/apt/archives
key: apt-debian13-${{ runner.arch }}-${{ steps.deps.outputs.hash }}
restore-keys: |
apt-debian13-${{ runner.arch }}-

- name: Compute short SHA and build date
id: vars
shell: bash
run: |
git config --global --add safe.directory "$PWD"
echo "short_sha=$(git rev-parse --short=7 HEAD)" >> $GITHUB_OUTPUT
# The release body used github.event.head_commit.timestamp, which a
# workflow_dispatch run does not carry; the github context has no run
# start time either, so record one here.
echo "date=$(date -u '+%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT

- name: Install VPP build dependencies
run: |
sed -i '/^\s*git config commit\.template/s/^\(\s*\)/\1-/' Makefile
make UNATTENDED=yes install-dep

- name: Save apt archive cache
if: always()
uses: actions/cache/save@v4
with:
path: /var/cache/apt/archives
key: apt-debian13-${{ runner.arch }}-${{ steps.deps.outputs.hash }}

- name: Restore ccache
uses: actions/cache/restore@v4
with:
path: build-root/.ccache
# Keyed by commit, not by ref alone. With a fixed key only the
# first build of a ref could save this entry; every later build
# asked to save a key that was already stored, so the ccache stayed
# at whatever the first build left in it. A commit key gives each
# build a fresh entry to save, and the prefix in restore-keys still
# lends a run the newest entry of another commit on the same ref.
key: ccache-debian13-${{ runner.arch }}-${{ github.ref_name }}-${{ github.sha }}
restore-keys: |
ccache-debian13-${{ runner.arch }}-${{ github.ref_name }}-
ccache-debian13-${{ runner.arch }}-

- name: Build VPP DEB packages
run: |
git config --global --add safe.directory "$PWD"
git fetch --tags --force 2>/dev/null || true
# The version below counts the commits in the history, so it needs
# the whole history; the clone above is shallow. Asking for the
# unshallow only when the history is short keeps a full repository
# from erroring out, and the warning keeps a failure here from
# quietly turning the count into a constant 1.
if [ "$(git rev-parse --is-shallow-repository)" = true ]; then
git fetch --unshallow --quiet ||
echo "::warning::full history unavailable, the commit count in the version is not reliable"
fi
# Only a VPP release tag (vYY.MM...) should win over the synthesised
# version. A bare 'v*' also matches this workflow's own deb release
# tags (vpp-trixie-<n>), which would leave .version unwritten and
# send src/scripts/version to its own git describe; that one does not
# look at lightweight tags, so it would find none and exit 1, leaving
# the package version empty.
if ! git describe --tags --long --match 'v[0-9]*' 2>/dev/null; then
# No matching tag in this repo, so synthesise one. The build
# identifier must vary per commit, otherwise every build of this
# branch produces the same version string and apt skips packages
# it considers already installed.
#
# The "0.0.0-release" prefix is deliberate: it is the version of
# packages already installed from this branch, and Debian
# compares "<upstream>-<revision>" by its last hyphen, so a plain
# "0.0.0-<ts>~g<sha>" would sort BELOW "0.0.0-release" (letters
# outrank digits) and apt would refuse it. Extending the existing
# "-release" revision keeps every new build strictly newer.
#
# The commit timestamp alone does not order two commits made in
# the same second: Debian then falls through to the hash, which
# carries no order, so the child can sort below its parent and apt
# keeps the older deb. Append the commit count, which grows
# strictly along the parent chain. Counting commits is why the
# fetch above has to unshallow the clone; at --depth 1 the count
# is 1 for every commit.
#
# Keep the separator in front of the hash: src/scripts/version
# turns it into "~g<sha>" in the package version. Glued to the
# timestamp the hash joins the same digit run, and Debian compares
# digit runs by length before value, so a build whose hash starts
# with a digit outranks every later build with a shorter run.
echo "0.0.0-release+$(git log -1 --format=%ct).$(git rev-list --count HEAD)-g$(git rev-parse --short=7 HEAD)" \
> src/scripts/.version
fi
ccache -z
export VPP_EXTRA_CMAKE_ARGS="\
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache"
make pkg-deb
ccache -s

- name: Save ccache
uses: actions/cache/save@v4
with:
path: build-root/.ccache
key: ccache-debian13-${{ runner.arch }}-${{ github.ref_name }}-${{ github.sha }}

- name: Upload DEB artifacts
uses: actions/upload-artifact@v4
with:
name: vpp-debian13-trixie
path: build-root/*.deb

- name: Publish Release
if: ${{ github.event_name == 'workflow_dispatch' && inputs.release }}
uses: softprops/action-gh-release@v2
with:
files: build-root/*.deb
tag_name: ${{ inputs.tag || format('vpp-trixie-{0}', github.run_number) }}
name: "VPP ${{ steps.vars.outputs.short_sha }} for Debian 13"
body: |
VPP build from commit ${{ github.sha }}
- Branch: ${{ github.ref_name }}
- Build date: ${{ steps.vars.outputs.date }}
draft: false
prerelease: true
Loading
Loading