@push.rocks/smartnftables 4.3.1 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +17 -0
- package/dist_rust/smartnftables_linux_amd64_musl +0 -0
- package/dist_rust/smartnftables_linux_amd64_musl.tsrust-build.json +5 -5
- package/dist_rust/smartnftables_linux_arm64_musl +0 -0
- package/dist_rust/smartnftables_linux_arm64_musl.tsrust-build.json +5 -5
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/managed.egress.types.d.ts +25 -4
- package/package.json +4 -4
- package/readme.md +89 -2
- package/rust/src/egress.compile.rs +105 -38
- package/rust/src/egress.hostgrant.rs +74 -34
- package/rust/src/egress.keys.rs +383 -52
- package/rust/src/egress.leased.rs +71 -42
- package/rust/src/egress.poolguard.rs +72 -0
- package/rust/src/egress.private.rs +32 -37
- package/rust/src/egress.published.rs +74 -47
- package/rust/src/egress.router.rs +1 -1
- package/rust/src/egress.rs +65 -1
- package/rust/src/egress.workloadgrant.rs +30 -28
- package/rust/src/egress_hostgrant_tests.rs +12 -0
- package/rust/src/egress_keys_tests.rs +150 -0
- package/rust/src/egress_poolguardpublished_tests.rs +418 -0
- package/rust/src/egress_tests.rs +47 -4
- package/rust/src/owner.rs +96 -28
- package/rust/src/owner_listing_tests.rs +634 -0
- package/rust/src/owner_tests.rs +3 -0
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/managed.egress.types.ts +26 -4
|
@@ -216,17 +216,39 @@ export interface IManagedNftLocalTcpPortOwner {
|
|
|
216
216
|
uid: number;
|
|
217
217
|
}
|
|
218
218
|
|
|
219
|
+
/** One publication an allocation-pool guard admits into a pool: a flow whose original destination lies
|
|
220
|
+
* outside every listed pool, on `hostPort` (or the range `hostPort..hostPortEnd`), translated to exactly
|
|
221
|
+
* `targetAddress` and `targetPort`, and its replies, in the default conntrack zone. The guard checks
|
|
222
|
+
* no link and no uplink address: the scope that translates the flow (`hostTransit.publishedPorts`)
|
|
223
|
+
* binds those. Compile the same publication into the guard and the host-transit scope it crosses. */
|
|
224
|
+
export interface IManagedNftPoolGuardPublishedPort {
|
|
225
|
+
protocol: 'tcp' | 'udp';
|
|
226
|
+
/** Published port, 1–65535; each protocol and port is published at most once per guard. */
|
|
227
|
+
hostPort: number;
|
|
228
|
+
/** Optional last port of a published range, greater than `hostPort`; a range keeps every port,
|
|
229
|
+
* so `targetPort` must equal `hostPort`. Absent for one port, its only canonical form. */
|
|
230
|
+
hostPortEnd?: number;
|
|
231
|
+
targetPort: number;
|
|
232
|
+
/** Exact unicast address inside a listed pool that the publication is translated to. */
|
|
233
|
+
targetAddress: string;
|
|
234
|
+
}
|
|
235
|
+
|
|
219
236
|
/** Host-wide IPv4 destination denial for caller-authenticated private allocation pools.
|
|
220
|
-
* It has no link dependency; exact host grants are its only exceptions. It is not
|
|
237
|
+
* It has no link dependency; exact host grants and publications are its only exceptions. It is not
|
|
238
|
+
* allocation-release or boot-order proof. */
|
|
221
239
|
export interface IManagedNftAllocationPoolGuardScopeV2 {
|
|
222
240
|
kind: 'allocationPoolGuard';
|
|
223
241
|
authorityDigest: string;
|
|
224
242
|
/** Complete current pool list: 1–64 canonical, disjoint RFC1918 prefixes. */
|
|
225
243
|
prefixes: string[];
|
|
226
|
-
/**
|
|
227
|
-
*
|
|
228
|
-
*
|
|
244
|
+
/** Exceptions to the guard: exact host-origin flows whose `destinationAddress` lies in a listed
|
|
245
|
+
* pool, and their replies. Absent and empty are the same canonical policy; at most 1024, held in a
|
|
246
|
+
* named set behind a constant number of rules. */
|
|
229
247
|
hostGrants?: IManagedNftHostGrant[];
|
|
248
|
+
/** Exceptions to the guard: publications translated from outside every listed pool into one, and
|
|
249
|
+
* their replies. Absent and empty are the same canonical policy, digest and compiled graph; at most
|
|
250
|
+
* 1024, held in a named set behind a constant number of rules. */
|
|
251
|
+
publishedPorts?: IManagedNftPoolGuardPublishedPort[];
|
|
230
252
|
/** Optional host-wide loopback port ownership, compiled ahead of the guard in the same table.
|
|
231
253
|
* Absent and empty are the same canonical policy, digest and compiled graph; at most 8, one per
|
|
232
254
|
* exact address and port. */
|