-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
d4de41a
commit c6b0a25
Showing
50 changed files
with
172 additions
and
86 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,15 +26,15 @@ hide circle | |
!endfunction | ||
!$doc_links = { | ||
"flow_item": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#pattern-item", | ||
"flow_item_template": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#pattern-templates", | ||
"flow_action": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#actions", | ||
"flow_action_template": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#actions-templates", | ||
"flow_action_indirect": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#action-indirect", | ||
"flow_action_indirect_list": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#action-indirect-list", | ||
"switch_domain": "https://doc.dpdk.org/guides-24.07/prog_guide/switch_representation.html", | ||
"flow_table": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html#attribute-group", | ||
"flow": "https://doc.dpdk.org/guides-24.07/prog_guide/rte_flow.html", | ||
"flow_item": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#pattern-item", | ||
"flow_item_template": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#pattern-templates", | ||
"flow_action": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#actions", | ||
"flow_action_template": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#actions-templates", | ||
"flow_action_indirect": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#action-indirect", | ||
"flow_action_indirect_list": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#action-indirect-list", | ||
"switch_domain": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/switch_representation.html", | ||
"flow_table": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html#attribute-group", | ||
"flow": "https://doc.dpdk.org/guides-24.11/prog_guide/ethdev/flow_offload.html", | ||
"hairpin_queue": "https://inbox.dpdk.org/dev/[email protected]/", | ||
"membuf": "https://doc.dpdk.org/guides/prog_guide/mbuf_lib.html", | ||
"mempool": "https://doc.dpdk.org/guides/prog_guide/mempool_lib.html", | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Core pinning | ||
|
||
> [!NOTE] | ||
> I think we can punt on this till the last minute! | ||
> I think we can punt on this until the last minute! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
32 changes: 32 additions & 0 deletions
32
design-docs/src/mdbook/src/dataplane/tasks/pick-a-datastore.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# Pick a data store | ||
|
||
We need to officially pick a data store for configuration information. | ||
|
||
This data store _is not_ intended for storing "fast" state. | ||
Rather, this store needs to hold configuration data which is | ||
|
||
1. durable | ||
2. atomic | ||
3. strongly typed | ||
4. immediately consistent | ||
|
||
[`etcd`] is a reasonable choice because | ||
|
||
1. It is already in use in kubernetes and is therefore likely to be well-maintained and tested. | ||
2. we are already using / integrating with kubernetes so any flaws in `etcd` are likely to impact us anyway. | ||
|
||
I have used [`zookeeper`](https://zookeeper.apache.org/) in the past and *strongly recommend against it*. | ||
|
||
I would also consider [`consul`](https://github.com/hashicorp/consul) but [the license](https://github.com/hashicorp/consul/blob/main/LICENSE) is *_not_* acceptable. | ||
|
||
A newer entry in the space is [`nacos`](https://github.com/alibaba/nacos) but I think it is less well suited since it only seems to support eventual consistency. | ||
|
||
The remaining option I know of is [`rqlite`]. _I have not used it,_ but it seems to be a reasonable option. | ||
|
||
- has a supported [rust client](https://github.com/tomvoet/rqlite-rs) (and even a [sqlx](https://github.com/launchbadge/sqlx) client in the form of [sqlx-rqlite](https://crates.io/crates/sqlx-rqlite)) | ||
- [weak](https://rqlite.io/docs/api/read-consistency/#weak), [linearizable](https://rqlite.io/docs/api/read-consistency/#linearizable), and [strong](https://rqlite.io/docs/api/read-consistency/#strong) consistency models supported | ||
- [transactions](https://rqlite.io/docs/api/api/#transactions) (this seems less than ideal tho) | ||
|
||
Thus, I think the real choice is between [`etcd`] and [`rqlite`]. | ||
|
||
That choice comes down to how much we value the functionality of sqlite (multiple indexes, referential integrity, strong schema) vs. the upsides of [etcd] (watches, battle tested, and more widely used). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
design-docs/src/mdbook/src/dataplane/tasks/zebra-plugin.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
# Zebra Plugin (basic) | ||
|
||
The dataplane and control plane need to communicate with each other regarding | ||
|
||
1. Full routing tables (for [state sync]) | ||
2. route updates (i.e. differential updates) | ||
3. route offloading status (including failures) | ||
4. Address assignments, to ensure the dataplane can configure [local delivery](./identify-local-traffic.md) | ||
|
||
Keep in mind that route tables are, in general, notably more complex than a naive LPM trie, and may include like: | ||
|
||
1. [ECMP]/WCMP | ||
2. [encapsulation rules](https://www.man7.org/linux/man-pages/man8/ip-route.8.html), | ||
3. [nexthop groups](https://man7.org/linux/man-pages/man8/ip-nexthop.8.html), | ||
4. multicast routes (this is unlikely to be important in the near term). | ||
|
||
We only expect to support basic IPv4 and IPv6 LPM routes in the near term, but feature evolution should be accounted for in the design. | ||
|
||
## Likely dispatch | ||
|
||
* [@Fredi-raspall] | ||
* coordinate with: [@daniel-noland] | ||
|
||
{{#include ../../links.md}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# NAT44 |
1 change: 1 addition & 0 deletions
1
design-docs/src/mdbook/src/dataplane/tasks2/NAT64-investigation.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# NAT64 (investigation) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# NAT64 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# NAT66 |
1 change: 1 addition & 0 deletions
1
design-docs/src/mdbook/src/dataplane/tasks2/config-db-schema.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Configuration database schema |
1 change: 1 addition & 0 deletions
1
...docs/src/mdbook/src/dataplane/tasks2/configuration-persistence-investigation.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Configuration Persistence Investigation |
1 change: 1 addition & 0 deletions
1
design-docs/src/mdbook/src/dataplane/tasks2/control-plane-dev-env.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Control plane dev-env |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Core pinning |
1 change: 1 addition & 0 deletions
1
design-docs/src/mdbook/src/dataplane/tasks2/create-control-plane-image.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Create control plane image |
1 change: 1 addition & 0 deletions
1
design-docs/src/mdbook/src/dataplane/tasks2/dataplane-control-plane-protocol.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Dataplane / Control plane protocol |
Oops, something went wrong.