Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
3b81eaf
fix(net): restructure netlink extraction
daniel-noland Jul 31, 2025
6b37924
fix(net)!: re-organize physical netdev props
daniel-noland Jul 31, 2025
62813bd
fix(net): extend maximum switchid length
daniel-noland Jul 31, 2025
ebd2b1d
fix(interface-manager): fix pinning error in tap creation
daniel-noland Jul 24, 2025
8d8c78e
fix(net): display issue
daniel-noland Jul 24, 2025
399e604
feat(interface-manager)!: tap support part 2
daniel-noland Jul 31, 2025
cd8971e
fix(interface-manager)!: make pci less forgiving
daniel-noland Jul 24, 2025
2e814c9
feat(net): intro bus
daniel-noland Jul 24, 2025
0f5642c
feat(interface-manager)!: netdevsim part 1
daniel-noland Jul 24, 2025
1d5a6ae
feat(interface-manager)!: dummy support
daniel-noland Jul 24, 2025
5edeb6b
fix(interface-manager): formating
daniel-noland Aug 1, 2025
592c426
WIP
daniel-noland Jul 31, 2025
0ef219b
fix: interface index type
daniel-noland Aug 1, 2025
3439522
fix: reduce type promise for kernel packet_recv
daniel-noland Aug 1, 2025
d342ecc
fix: reduce type promise for kernel start
daniel-noland Aug 1, 2025
a7a3168
fix(dataplane): formatting
daniel-noland Aug 1, 2025
43b5981
fix(dataplane): tone down tracing on hot path
daniel-noland Aug 1, 2025
f5ca87c
fix(dataplane): clean up logic
daniel-noland Aug 1, 2025
e249989
fix(dataplane): tune up instrumentation
daniel-noland Aug 1, 2025
810d3d3
fix(dataplane): remove pointless deep copy
daniel-noland Aug 1, 2025
88009ee
fix(dataplane): Cargo.toml cleanup
daniel-noland Aug 1, 2025
60794ac
fix(pipeline): remove unused annotations
daniel-noland Aug 1, 2025
2fb0da3
WIP
daniel-noland Aug 1, 2025
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
66 changes: 66 additions & 0 deletions .$design.drawio.bkp
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/27.0.9 Chrome/134.0.6998.205 Electron/35.7.2 Safari/537.36" version="27.0.9">
<diagram name="Page-1" id="ZLNp89TCg6Dz43G3kSMe">
<mxGraphModel dx="1165" dy="786" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="350" pageHeight="70" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-3" value="link manager" style="whiteSpace=wrap;html=1;verticalAlign=bottom;" parent="1" vertex="1">
<mxGeometry x="-50" y="30" width="360" height="150" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-1" value="p1" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry y="130" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-2" value="p2" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="140" y="130" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-4" value="vpc manager" style="whiteSpace=wrap;html=1;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="-50" y="-240" width="360" height="190" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;startFill=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-5" target="ruCG_IUOwxLRY3Mq7dZ_-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-5" value="p1-tap" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry y="-80" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-6" target="ruCG_IUOwxLRY3Mq7dZ_-12" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-6" value="p2-tap" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="140" y="-80" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-7" target="ruCG_IUOwxLRY3Mq7dZ_-1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="60" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endArrow=none;startFill=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-7" target="ruCG_IUOwxLRY3Mq7dZ_-2" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="200" y="60" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-7" value="kernel driver" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="40" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-12" target="ruCG_IUOwxLRY3Mq7dZ_-7" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-12" value="pipeline" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="-20" width="120" height="40" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-17" value="frr" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="-10" y="-205" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-18" value="strongswan" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="90" y="-205" width="80" height="60" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-19" value="lldpad" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="190" y="-205" width="80" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
4 changes: 4 additions & 0 deletions .$design.svg.bkp

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions .$notes.drawio.svg.bkp

Large diffs are not rendered by default.

18 changes: 9 additions & 9 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 3 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ members = [
"dpdk",
"dpdk-sys",
"dpdk-sysroot-helper",
"driver",
"errno",
"id",
"interface-manager",
Expand All @@ -31,7 +32,7 @@ config = { path = "./config", package = "dataplane-config" }
dpdk = { path = "./dpdk", package = "dataplane-dpdk" }
dpdk-sys = { path = "./dpdk-sys", package = "dataplane-dpdk-sys" }
dpdk-sysroot-helper = { path = "./dpdk-sysroot-helper", package = "dataplane-dpdk-sysroot-helper" }
dplane-rpc = { git = "https://github.com/githedgehog/dplane-rpc.git", version = "1.1.2"}
dplane-rpc = { git = "https://github.com/githedgehog/dplane-rpc.git", version = "1.1.2" }
errno = { path = "./errno", package = "dataplane-errno" }
gateway_config = { git = "https://github.com/githedgehog/gateway-proto", tag = "v0.12.0", version = "0.12.0" }
id = { path = "./id", package = "dataplane-id" }
Expand Down Expand Up @@ -72,7 +73,7 @@ etherparse = { version = "0.18.2", default-features = false, features = [] }
fixin = { git = "https://github.com/githedgehog/fixin", branch = "main" }
futures = { version = "0.3.31", default-features = false, features = [] }
hyper = { version = "1.6.0", default-features = false, features = ["http1", "server"] }
hyper-util = { version = "0.1.16", features = ["tokio"]}
hyper-util = { version = "0.1.16", features = ["tokio"] }
ipnet = { version = "2.11.0", default-features = false, features = [] }
left-right = { version = "0.11.5" }
libc = { version = "1.0.0-alpha.1", default-features = false, features = [] }
Expand Down
2 changes: 2 additions & 0 deletions config/src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,8 @@ pub enum ConfigError {
InvalidIpAddress(String),
#[error("Invalid mask length in interface address: {0}")]
InvalidMaskLength(String),
#[error("Invalid configuration: {0}")]
Invalid(String),
}

/// Result-like type for configurations
Expand Down
94 changes: 94 additions & 0 deletions dataplane/.$design.drawio.bkp
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/27.0.9 Chrome/134.0.6998.205 Electron/35.7.2 Safari/537.36" version="27.0.9">
<diagram name="Page-1" id="ZLNp89TCg6Dz43G3kSMe">
<mxGraphModel dx="815" dy="716" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="350" pageHeight="70" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-3" value="link-manager netns" style="whiteSpace=wrap;html=1;verticalAlign=top;align=left;" parent="1" vertex="1">
<mxGeometry x="50" y="55" width="360" height="125" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-1" value="p1" style="whiteSpace=wrap;html=1;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="190" y="150" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-2" value="p2" style="whiteSpace=wrap;html=1;fillColor=#6a00ff;fontColor=#ffffff;strokeColor=#3700CC;" parent="1" vertex="1">
<mxGeometry x="255" y="150" width="20" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-4" value="vpc-manager netns" style="whiteSpace=wrap;html=1;verticalAlign=top;align=left;" parent="1" vertex="1">
<mxGeometry x="50" y="-190" width="360" height="210" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;" edge="1" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-5" target="-VCiuAsCz3Ai68GRL-Wc-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-5" value="p1-tap" style="whiteSpace=wrap;html=1;fillColor=#a0522d;fontColor=#ffffff;strokeColor=#6D1F00;" parent="1" vertex="1">
<mxGeometry x="180" y="-60" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;" edge="1" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-6" target="-VCiuAsCz3Ai68GRL-Wc-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-6" value="p2-tap" style="whiteSpace=wrap;html=1;fillColor=#a0522d;fontColor=#ffffff;strokeColor=#6D1F00;" parent="1" vertex="1">
<mxGeometry x="240" y="-60" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-7" target="ruCG_IUOwxLRY3Mq7dZ_-1" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="200" y="140" />
<mxPoint x="200" y="140" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.792;exitY=0.957;exitDx=0;exitDy=0;endArrow=none;startFill=0;exitPerimeter=0;" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-7" target="ruCG_IUOwxLRY3Mq7dZ_-2" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="265" y="150" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-7" value="kernel driver" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="170" y="115" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;startFill=0;" edge="1" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-12" target="-VCiuAsCz3Ai68GRL-Wc-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;startFill=0;" edge="1" parent="1" source="ruCG_IUOwxLRY3Mq7dZ_-12" target="ruCG_IUOwxLRY3Mq7dZ_-7">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-12" value="pipeline" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="170" y="70" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-17" value="frr" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="90" y="-110" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-18" value="strongswan" style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="190" y="-110" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="ruCG_IUOwxLRY3Mq7dZ_-19" value="lldpad" style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" parent="1" vertex="1">
<mxGeometry x="290" y="-145" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-1" value="trapline" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="170" y="-15" width="120" height="20" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-7" value="dhcp server" style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" vertex="1" parent="1">
<mxGeometry x="190" y="-145" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-8" value="dns server" style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" vertex="1" parent="1">
<mxGeometry x="290" y="-180" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-9" value="web server" style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" vertex="1" parent="1">
<mxGeometry x="90" y="-145" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-13" value="whatever..." style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" vertex="1" parent="1">
<mxGeometry x="290" y="-110" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-15" value="user vm" style="whiteSpace=wrap;html=1;dashed=1;fillColor=none;fontColor=#ffffff;strokeColor=#A50040;" vertex="1" parent="1">
<mxGeometry x="190" y="-180" width="80" height="25" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-17" value="vpc manager runtime" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="302.5" y="-35" width="85" height="40" as="geometry" />
</mxCell>
<mxCell id="-VCiuAsCz3Ai68GRL-Wc-18" value="link manager runtime" style="whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="300" y="105" width="90" height="35" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
13 changes: 2 additions & 11 deletions dataplane/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,29 +13,20 @@ axum-server = { workspace = true }
clap = { workspace = true, features = ["std", "derive", "usage"] }
ctrlc = { workspace = true, features = ["termination"] }
dpdk = { workspace = true }
dyn-iter = { workspace = true }
hyper = { workspace = true }
hyper-util = { workspace = true }
id = { workspace = true }
metrics = { workspace = true }
metrics-exporter-prometheus = { workspace = true }
mgmt = { workspace = true }
mio = { workspace = true, features = ["os-ext", "net"] }
nat = { workspace = true }
net = { workspace = true, features = ["test_buffer"] }
netdev = { workspace = true }
once_cell = { workspace = true }
ordermap = { workspace = true, features = ["std"] }
parking_lot = { workspace = true }
pipeline = { workspace = true }
pkt-meta = { workspace = true }
routing = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_yml = { workspace = true }
tokio = { workspace = true }
stats = { workspace = true }
tokio = { workspace = true }
tracing = { workspace = true }
tracing-subscriber = { workspace = true, features = ["default"] }
tracing-subscriber = { workspace = true, default-features = true }
vpcmap = { workspace = true }

[dev-dependencies]
Expand Down
Loading