Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
f4dc096
Implement `easy-tun` crate
ewpratten Aug 2, 2023
198b7bc
Implement fast NAT
ewpratten Aug 2, 2023
fca597a
Remove protomask-tun in favor of easy-tun
ewpratten Aug 2, 2023
ebbe72f
Fix clippy errors and create new package
ewpratten Aug 2, 2023
37f9e91
move all translation code to interproto
ewpratten Aug 2, 2023
6968fdf
Delete old packet logic
ewpratten Aug 2, 2023
87547f5
Starting to build binary entrypoints
ewpratten Aug 2, 2023
7e6abe6
implement rfc6052 address embedding
ewpratten Aug 2, 2023
2d097e6
Implement rfc6052 embed and extract fns
ewpratten Aug 2, 2023
dc5d524
Expose new fns
ewpratten Aug 2, 2023
f1c1afe
appease clippy
ewpratten Aug 2, 2023
eb1da67
Implement the rest of clat packet translation
ewpratten Aug 2, 2023
7d0a9f0
Update keywords
ewpratten Aug 3, 2023
032dcb7
Create rtnl
ewpratten Aug 3, 2023
833d430
wip clat
ewpratten Aug 3, 2023
74ad55b
CLAT is functional
ewpratten Aug 3, 2023
3c01686
small bugfix
ewpratten Aug 3, 2023
af023c0
Set up mdbook and tweak CI
ewpratten Aug 3, 2023
40a9f7e
Cut out old README content
ewpratten Aug 3, 2023
0d627d4
Use matrix for builds
ewpratten Aug 3, 2023
079416b
Apply rustfmt fixes
ewpratten Aug 3, 2023
62e1bdb
Fix issues with arch-specific types
ewpratten Aug 3, 2023
5d8919e
Automatically build debs
ewpratten Aug 3, 2023
f69625c
Implement nat64 cli args
ewpratten Aug 3, 2023
f2b2be5
Implement metrics in interproto
ewpratten Aug 3, 2023
8330515
Add ICMP tracker
ewpratten Aug 3, 2023
37faf7d
Finish first pass of protomask bin
ewpratten Aug 4, 2023
234aa92
Appease clippy
ewpratten Aug 4, 2023
0b24c11
Remove old config file
ewpratten Aug 4, 2023
a0b4360
Attempt to fix strip issue
ewpratten Aug 4, 2023
213a49d
Add more info to workflow runs
ewpratten Aug 4, 2023
025ba7e
Fix deb build issues
ewpratten Aug 4, 2023
93b110b
Add information about the build channel
ewpratten Aug 4, 2023
74bd460
Basic website content
ewpratten Aug 4, 2023
0eab85a
Working on the book
ewpratten Aug 4, 2023
1632f8f
Add docs CI
ewpratten Aug 4, 2023
52d06a1
Combine book and website
ewpratten Aug 4, 2023
e856e35
test deploy
ewpratten Aug 4, 2023
bb3e2c2
Add CNAME and perms
ewpratten Aug 4, 2023
5d1cff9
wip readme
ewpratten Aug 4, 2023
c4862a2
Add badges
ewpratten Aug 4, 2023
6213221
change format
ewpratten Aug 4, 2023
920e1bf
table fmt
ewpratten Aug 4, 2023
3522cce
Add badges to project readmes
ewpratten Aug 4, 2023
a9ca9f2
Fix incorrect site file structure
ewpratten Aug 4, 2023
eddcc2e
Change the tagline
ewpratten Aug 4, 2023
c0c8b57
fix spacing
ewpratten Aug 4, 2023
f205e63
Update tagline in README
ewpratten Aug 4, 2023
71f60e5
reorg readme
ewpratten Aug 4, 2023
718dfbe
test
ewpratten Aug 4, 2023
a28e720
Fix some web scaling bugs
ewpratten Aug 4, 2023
5c46bef
Update README.md
ewpratten Aug 4, 2023
0ee5c70
Experimenting with readme
ewpratten Aug 4, 2023
ffa8864
first step at new readme
ewpratten Aug 4, 2023
3b5a5fd
Update website deployment system
ewpratten Aug 4, 2023
cdd1c43
Update triggers
ewpratten Aug 4, 2023
0b024bd
Fix file perms in CI
ewpratten Aug 4, 2023
ba20725
Test retrigger
ewpratten Aug 4, 2023
0e73584
Document rfc6052 crate
ewpratten Aug 4, 2023
a0e4ead
Fix formatting suggestions
ewpratten Aug 4, 2023
41708f1
Enable prometheus metrics in binaries
ewpratten Aug 4, 2023
79a861a
FIx a bug with address assignment
ewpratten Aug 4, 2023
23fd3f2
Fix addr format ambiguity
ewpratten Aug 4, 2023
2486aac
Appease clippy
ewpratten Aug 4, 2023
7d15bdc
Migrate to allowing config files
ewpratten Aug 5, 2023
0e7a96b
Reformat
ewpratten Aug 5, 2023
7ce0c89
Create example config files
ewpratten Aug 5, 2023
f6888fd
appease clippy
ewpratten Aug 5, 2023
4caa610
fmt
ewpratten Aug 5, 2023
6c0e6b2
Embed profiling macros into crates
ewpratten Aug 5, 2023
eabfbfc
Implement optional profiling
ewpratten Aug 5, 2023
a01ee10
fmt
ewpratten Aug 5, 2023
67b9160
Improve build settings
ewpratten Aug 5, 2023
3a9017e
Add some experimental benchmarks
ewpratten Aug 5, 2023
32f1447
Working on nat64 tutorial
ewpratten Aug 5, 2023
70a3ddb
wip nat docs
ewpratten Aug 5, 2023
83ac812
Cleanup
ewpratten Oct 1, 2023
5787464
Set version
ewpratten Feb 12, 2024
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
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[registries.crates-io]
protocol = "sparse"
5 changes: 3 additions & 2 deletions .github/workflows/audit.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Security audit
name: Audit

on:
push:
Expand All @@ -17,7 +17,8 @@ permissions:
contents: read

jobs:
security_audit:
rust_audit:
name: Rust Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
Expand Down
78 changes: 69 additions & 9 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,30 +3,90 @@ name: Build
on:
pull_request:
push:
paths:
- '.github/workflows/build.yml'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/src/*'
paths:
- ".github/workflows/build.yml"
- "**/Cargo.toml"
- "**/Cargo.lock"
- "**/src/*"

jobs:
build_and_test:
name: Rust project
name: Build & Test

# Use a build matrix to run this job targeting all supported platforms
runs-on: ubuntu-latest
strategy:
matrix:
# All supported targets
target:
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-musl
# All supported Rust channels
rust_channel:
- stable

# Common build steps
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
toolchain: ${{ matrix.rust_channel }}
override: true

# Builds targeting aarch64 require `aarch64-linux-gnu-strip`
- name: Install aarch64-linux-gnu-strip
if: matrix.target == 'aarch64-unknown-linux-musl'
run: sudo apt-get update && sudo apt-get install -y binutils-aarch64-linux-gnu

- name: Install cargo-deb
uses: actions-rs/cargo@v1
with:
command: install
args: cargo-deb

- name: Compile
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --release
args: --release --target ${{ matrix.target }}

- name: Run Tests
uses: actions-rs/cargo@v1
with:
use-cross: true
command: test
args: --release
args: --all --release --target ${{ matrix.target }}

- name: Package DEB
uses: actions-rs/cargo@v1
with:
use-cross: false
command: deb
args: --target ${{ matrix.target }} --no-build

- name: Upload DEB
uses: actions/upload-artifact@v3
with:
name: debian-packages
path: target/${{ matrix.target }}/debian/*.deb

- name: Determine binary sizes
id: get-bin-size-info
run: |
body="$(du -h target/${{ matrix.target }}/release/protomask{,-clat,-6over4} | sort -hr)"
delimiter="$(openssl rand -hex 8)"
echo "body<<$delimiter" >> $GITHUB_OUTPUT
echo "$body" >> $GITHUB_OUTPUT
echo "$delimiter" >> $GITHUB_OUTPUT

- name: Add binary size info to commit
uses: peter-evans/commit-comment@v2
with:
body: |
## Binary sizes for `${{ matrix.target }}`
**Channel:** `${{ matrix.rust_channel }}`

```
${{ steps.get-bin-size-info.outputs.body }}
```
23 changes: 0 additions & 23 deletions .github/workflows/clippy.yml

This file was deleted.

36 changes: 36 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: Lint

on:
push:
paths:
- '.github/workflows/lint.yml'
- '**/Cargo.toml'
- '**/*.rs'

permissions:
checks: write
contents: read

jobs:
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install clippy
run: rustup component add clippy
- name: Run clippy
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features

rustfmt:
name: rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Install rustfmt
run: rustup component add rustfmt
- name: Check formatting
run: cargo fmt --all --check
5 changes: 5 additions & 0 deletions .markdownlint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"MD033": false,
"MD013": false,
"MD022": false
}
17 changes: 16 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,20 @@
"pnet",
"Protomask",
"rtnetlink"
]
],
"[yaml]": {
"editor.insertSpaces": true,
"editor.tabSize": 2,
"editor.autoIndent": "advanced",
"diffEditor.ignoreTrimWhitespace": false
},
"files.associations": {
"*.json.liquid": "json",
"*.yaml.liquid": "yaml",
"*.md.liquid": "markdown",
"*.js.liquid": "liquid-javascript",
"*.css.liquid": "liquid-css",
"*.scss.liquid": "liquid-scss",
"docs/website/_redirects": "plaintext"
}
}
23 changes: 22 additions & 1 deletion .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
{
"type": "cargo",
"command": "build",
"args": [
"--workspace"
],
"problemMatcher": [
"$rustc",
"$rust-panic"
Expand All @@ -14,12 +17,30 @@
{
"type": "cargo",
"command": "test",
"args": [
"--workspace"
],
"problemMatcher": [
"$rustc",
"$rust-panic"
],
"group": "test",
"label": "rust: cargo test"
}
},
{
"type": "cargo",
"command": "doc",
"args": [
"--no-deps",
"--workspace",
"--document-private-items"
],
"problemMatcher": [
"$rustc",
"$rust-panic"
],
"group": "build",
"label": "rust: cargo doc"
}
]
}
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @ewpratten
Loading