Skip to content

Commit cf27cc3

Browse files
authored
Merge pull request #721 from openziti/xgress
Support xgress flow control from SDK. Move xgress impl to SDK. Fixes #702
2 parents 1b52dbe + 091a792 commit cf27cc3

36 files changed

+1243
-345
lines changed

CHANGELOG.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,72 @@
1+
# Release notes 1.1.0
2+
3+
## What's New
4+
5+
* Experimental support for sdk based flow-control
6+
* Config change for multiple underlays
7+
8+
## SDK Flow Control
9+
10+
If the router being connected to supports it, the sdk can now manage flow control
11+
instead of delegating that to the router. This is mostly important when running
12+
multiple simultaneous circuits throught the SDK. When running multiple circuits,
13+
a slow circuit can get stalled at the router because of flow control back-pressure.
14+
This then back-pressures all circuits from the SDK to that router.
15+
16+
By moving the flow-control to the SDK, a slow circuit will not negatively impact
17+
other circuits to the same router. This is currently enabled in the `DialOptions`
18+
and `ListenOptions` for the dial and hosting sides respectively.
19+
20+
```
21+
t := true
22+
dialOptions := &ziti.DialOptions{
23+
ConnectTimeout: wf.ConnectTimeout,
24+
SdkFlowControl: &t,
25+
}
26+
27+
listenOptions := ziti.DefaultListenOptions()
28+
listenOptions.SdkFlowControl = &t
29+
```
30+
31+
As this is an experimental feature, the configuration may change or be removed
32+
in the future.
33+
34+
## Config Changes
35+
36+
The multi-underlay configuration has changed. There are now two settings.
37+
38+
```
39+
// If set to a number greater than one, the sdk will attempt to create multiple connections to edge routers.
40+
// This configuration value should not be considered part of the stable API yet. It currently defaults to one,
41+
// but it may default to a larger number at some point in the future or be removed. If set to zero, it will
42+
// be reset to one.
43+
MaxDefaultConnections uint32 `json:"-"`
44+
45+
// If set to a number greater than zero, the sdk will attempt to create one or more separate connection to
46+
// each edge routers for control plane data, such as dials. This configuration value should not be considered
47+
// part of the stable API yet. It currently defaults to zero, but it may default to 1 at some point in the future
48+
// or be removed.
49+
MaxControlConnections uint32 `json:"-"`
50+
```
51+
52+
The old `EnableSeparateControlPlaneConnection` setting is gone. Set `MaxControlConnections` to 1 to enable
53+
separation of control plane data.
54+
55+
Note that while present, the `MaxDefaultConnections` should not be used yet.
56+
57+
## Issues Fixed and Dependency Updates
58+
59+
* github.com/openziti/sdk-golang: [v1.0.2 -> v1.1.0](https://github.com/openziti/sdk-golang/compare/v1.0.2...v1.1.0)
60+
* [Issue #702](https://github.com/openziti/sdk-golang/issues/702) - [Go SDK] Support xgress flow control from the SDK
61+
62+
* github.com/openziti/channel/v4: [v4.0.4 -> v4.0.6](https://github.com/openziti/channel/compare/v4.0.4...v4.0.6)
63+
* [Issue #182](https://github.com/openziti/channel/issues/182) - MultiListener can deadlock
64+
* [Issue #180](https://github.com/openziti/channel/issues/180) - Add GetUserData to Channel interface
65+
66+
* github.com/openziti/identity: [v1.0.100 -> v1.0.101](https://github.com/openziti/identity/compare/v1.0.100...v1.0.101)
67+
* [Issue #64](https://github.com/openziti/identity/issues/64) - Support a way to check if a cert/serverCert can be saved
68+
69+
170
# Release notes 1.0.2
271

372
## Issues Fixed and Dependency Updates

edgexg/impl.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package edgexg
2+
3+
import "github.com/openziti/sdk-golang/ziti/edge"
4+
5+
const (
6+
PayloadFlagsHeader uint8 = 0x10
7+
)
8+
9+
// headers to pass through fabric to the other side
10+
var HeadersToFabric = map[int32]uint8{
11+
edge.FlagsHeader: PayloadFlagsHeader,
12+
}
13+
14+
var HeadersFromFabric = map[uint8]int32{
15+
PayloadFlagsHeader: edge.FlagsHeader,
16+
}

example/go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ require (
3737
github.com/disintegration/imaging v1.6.2 // indirect
3838
github.com/dlclark/regexp2 v1.10.0 // indirect
3939
github.com/eliukblau/pixterm/pkg/ansimage v0.0.0-20191210081756-9fb6cf8c2f75 // indirect
40+
github.com/emirpasic/gods v1.18.1 // indirect
4041
github.com/fatih/color v1.16.0 // indirect
4142
github.com/fsnotify/fsnotify v1.8.0 // indirect
4243
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa // indirect
@@ -79,10 +80,10 @@ require (
7980
github.com/muhlemmer/gu v0.3.1 // indirect
8081
github.com/oklog/ulid v1.3.1 // indirect
8182
github.com/opentracing/opentracing-go v1.2.0 // indirect
82-
github.com/openziti/channel/v4 v4.0.4 // indirect
83+
github.com/openziti/channel/v4 v4.0.6 // indirect
8384
github.com/openziti/edge-api v0.26.42 // indirect
84-
github.com/openziti/identity v1.0.100 // indirect
85-
github.com/openziti/metrics v1.4.0 // indirect
85+
github.com/openziti/identity v1.0.101 // indirect
86+
github.com/openziti/metrics v1.4.1 // indirect
8687
github.com/openziti/secretstream v0.1.32 // indirect
8788
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect
8889
github.com/parallaxsecond/parsec-client-go v0.0.0-20221025095442-f0a77d263cf9 // indirect

example/go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -358,16 +358,16 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak=
358358
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
359359
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
360360
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
361-
github.com/openziti/channel/v4 v4.0.4 h1:t/hMkKuZ2kqgenztcKjhdgrO/a5Kg2xZNNWB217UMvc=
362-
github.com/openziti/channel/v4 v4.0.4/go.mod h1:ekqQwL27nKufMN8nB0jO+bjj9QfOCiPM0GCPllUSK60=
361+
github.com/openziti/channel/v4 v4.0.6 h1:pcIn9xNnQXnenHoaOt347nG0dmnsisomnEIPq4F5YHI=
362+
github.com/openziti/channel/v4 v4.0.6/go.mod h1:sU3S/MToQHES1V22O+xtQbX0QSteoMo6RzQiEMfir+w=
363363
github.com/openziti/edge-api v0.26.42 h1:Wi/BUttSUvedT9XGht7vi/zI/TNGc3ApvjkAviWhauA=
364364
github.com/openziti/edge-api v0.26.42/go.mod h1:sYHVpm26Jr1u7VooNJzTb2b2nGSlmCHMnbGC8XfWSng=
365365
github.com/openziti/foundation/v2 v2.0.59 h1:PJwrcTq62x+cONBeKMlnsuphsTlOvTz8j8prYnehm8o=
366366
github.com/openziti/foundation/v2 v2.0.59/go.mod h1:76gmsdIBHvv4O3I0TuFBfO58Rv7YN8FA0ojwYz27ZxE=
367-
github.com/openziti/identity v1.0.100 h1:FTkbhykDCMw1z/wxEeDfmq1aBp2tLRjZ3ggioRT4pg8=
368-
github.com/openziti/identity v1.0.100/go.mod h1:E4SHqfXaZldDCo/GIdSD/Xg61obuolWYg9Qe8lqGUrQ=
369-
github.com/openziti/metrics v1.4.0 h1:uZALaZINoTFqRE3XcVZ/xGuvXJpDhn/a0kxaX586lzE=
370-
github.com/openziti/metrics v1.4.0/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
367+
github.com/openziti/identity v1.0.101 h1:XujPT6eCv3Gqsodh9846EoWfQZwDAFrjPLxm1cipveY=
368+
github.com/openziti/identity v1.0.101/go.mod h1:OZLcSf2wGqAa7/8SmbwLQxv0Gsv4i4pxTk83WPHIr+o=
369+
github.com/openziti/metrics v1.4.1 h1:JMnfmW8liTzmqJpd7HDPCSvDDFg1UrE0WoLhW9XdIG8=
370+
github.com/openziti/metrics v1.4.1/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
371371
github.com/openziti/runzmd v1.0.33 h1:tOyjRoUuVXIo1z1pNU32jALWkMmhzsSaDrhLtuOn3Ts=
372372
github.com/openziti/runzmd v1.0.33/go.mod h1:8c/uvZR/XWXQNllTq6LuTpfKL2DTNxfI2X2wYhgRwik=
373373
github.com/openziti/secretstream v0.1.32 h1:89/ZVcwIQjdVmWDfVRfMEChJJXTLXJ59AYBw5j646M4=

example/influxdb-client-go/go.mod

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ require (
2727
github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect
2828
github.com/chenzhuoyu/iasm v0.9.0 // indirect
2929
github.com/deepmap/oapi-codegen v1.15.0 // indirect
30+
github.com/emirpasic/gods v1.18.1 // indirect
3031
github.com/fatih/structs v1.1.0 // indirect
3132
github.com/flosch/pongo2/v4 v4.0.2 // indirect
3233
github.com/fsnotify/fsnotify v1.8.0 // indirect
@@ -93,11 +94,11 @@ require (
9394
github.com/muhlemmer/gu v0.3.1 // indirect
9495
github.com/oklog/ulid v1.3.1 // indirect
9596
github.com/opentracing/opentracing-go v1.2.0 // indirect
96-
github.com/openziti/channel/v4 v4.0.4 // indirect
97+
github.com/openziti/channel/v4 v4.0.6 // indirect
9798
github.com/openziti/edge-api v0.26.42 // indirect
9899
github.com/openziti/foundation/v2 v2.0.59 // indirect
99-
github.com/openziti/identity v1.0.100 // indirect
100-
github.com/openziti/metrics v1.4.0 // indirect
100+
github.com/openziti/identity v1.0.101 // indirect
101+
github.com/openziti/metrics v1.4.1 // indirect
101102
github.com/openziti/secretstream v0.1.32 // indirect
102103
github.com/openziti/transport/v2 v2.0.168 // indirect
103104
github.com/orcaman/concurrent-map/v2 v2.0.1 // indirect

example/influxdb-client-go/go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -413,16 +413,16 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak=
413413
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
414414
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
415415
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
416-
github.com/openziti/channel/v4 v4.0.4 h1:t/hMkKuZ2kqgenztcKjhdgrO/a5Kg2xZNNWB217UMvc=
417-
github.com/openziti/channel/v4 v4.0.4/go.mod h1:ekqQwL27nKufMN8nB0jO+bjj9QfOCiPM0GCPllUSK60=
416+
github.com/openziti/channel/v4 v4.0.6 h1:pcIn9xNnQXnenHoaOt347nG0dmnsisomnEIPq4F5YHI=
417+
github.com/openziti/channel/v4 v4.0.6/go.mod h1:sU3S/MToQHES1V22O+xtQbX0QSteoMo6RzQiEMfir+w=
418418
github.com/openziti/edge-api v0.26.42 h1:Wi/BUttSUvedT9XGht7vi/zI/TNGc3ApvjkAviWhauA=
419419
github.com/openziti/edge-api v0.26.42/go.mod h1:sYHVpm26Jr1u7VooNJzTb2b2nGSlmCHMnbGC8XfWSng=
420420
github.com/openziti/foundation/v2 v2.0.59 h1:PJwrcTq62x+cONBeKMlnsuphsTlOvTz8j8prYnehm8o=
421421
github.com/openziti/foundation/v2 v2.0.59/go.mod h1:76gmsdIBHvv4O3I0TuFBfO58Rv7YN8FA0ojwYz27ZxE=
422-
github.com/openziti/identity v1.0.100 h1:FTkbhykDCMw1z/wxEeDfmq1aBp2tLRjZ3ggioRT4pg8=
423-
github.com/openziti/identity v1.0.100/go.mod h1:E4SHqfXaZldDCo/GIdSD/Xg61obuolWYg9Qe8lqGUrQ=
424-
github.com/openziti/metrics v1.4.0 h1:uZALaZINoTFqRE3XcVZ/xGuvXJpDhn/a0kxaX586lzE=
425-
github.com/openziti/metrics v1.4.0/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
422+
github.com/openziti/identity v1.0.101 h1:XujPT6eCv3Gqsodh9846EoWfQZwDAFrjPLxm1cipveY=
423+
github.com/openziti/identity v1.0.101/go.mod h1:OZLcSf2wGqAa7/8SmbwLQxv0Gsv4i4pxTk83WPHIr+o=
424+
github.com/openziti/metrics v1.4.1 h1:JMnfmW8liTzmqJpd7HDPCSvDDFg1UrE0WoLhW9XdIG8=
425+
github.com/openziti/metrics v1.4.1/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
426426
github.com/openziti/secretstream v0.1.32 h1:89/ZVcwIQjdVmWDfVRfMEChJJXTLXJ59AYBw5j646M4=
427427
github.com/openziti/secretstream v0.1.32/go.mod h1:8YaIbjyMwBeKQ7eOYcoVPKHT10u+4OVPXpnZAeDzC6o=
428428
github.com/openziti/transport/v2 v2.0.168 h1:1Anf7X+4xmSKQ12GdPJFhoMZi04QxgD4MJu3agFc1R4=

go.mod

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ toolchain go1.23.1
77
require (
88
github.com/Jeffail/gabs v1.4.0
99
github.com/cenkalti/backoff/v4 v4.3.0
10+
github.com/emirpasic/gods v1.18.1
1011
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa
1112
github.com/go-openapi/runtime v0.28.0
1213
github.com/go-openapi/strfmt v0.23.0
@@ -17,11 +18,11 @@ require (
1718
github.com/michaelquigley/pfxlog v0.6.10
1819
github.com/mitchellh/go-ps v1.0.0
1920
github.com/mitchellh/mapstructure v1.5.0
20-
github.com/openziti/channel/v4 v4.0.4
21+
github.com/openziti/channel/v4 v4.0.6
2122
github.com/openziti/edge-api v0.26.42
2223
github.com/openziti/foundation/v2 v2.0.59
23-
github.com/openziti/identity v1.0.100
24-
github.com/openziti/metrics v1.4.0
24+
github.com/openziti/identity v1.0.101
25+
github.com/openziti/metrics v1.4.1
2526
github.com/openziti/secretstream v0.1.32
2627
github.com/openziti/transport/v2 v2.0.168
2728
github.com/orcaman/concurrent-map/v2 v2.0.1
@@ -40,7 +41,6 @@ require (
4041
require (
4142
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
4243
github.com/davecgh/go-spew v1.1.1 // indirect
43-
github.com/emirpasic/gods v1.18.1 // indirect
4444
github.com/fsnotify/fsnotify v1.8.0 // indirect
4545
github.com/go-logr/logr v1.4.2 // indirect
4646
github.com/go-logr/stdr v1.2.2 // indirect

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -299,16 +299,16 @@ github.com/onsi/gomega v1.13.0 h1:7lLHu94wT9Ij0o6EWWclhu0aOh32VxhkwEJvzuWPeak=
299299
github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY=
300300
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
301301
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
302-
github.com/openziti/channel/v4 v4.0.4 h1:t/hMkKuZ2kqgenztcKjhdgrO/a5Kg2xZNNWB217UMvc=
303-
github.com/openziti/channel/v4 v4.0.4/go.mod h1:ekqQwL27nKufMN8nB0jO+bjj9QfOCiPM0GCPllUSK60=
302+
github.com/openziti/channel/v4 v4.0.6 h1:pcIn9xNnQXnenHoaOt347nG0dmnsisomnEIPq4F5YHI=
303+
github.com/openziti/channel/v4 v4.0.6/go.mod h1:sU3S/MToQHES1V22O+xtQbX0QSteoMo6RzQiEMfir+w=
304304
github.com/openziti/edge-api v0.26.42 h1:Wi/BUttSUvedT9XGht7vi/zI/TNGc3ApvjkAviWhauA=
305305
github.com/openziti/edge-api v0.26.42/go.mod h1:sYHVpm26Jr1u7VooNJzTb2b2nGSlmCHMnbGC8XfWSng=
306306
github.com/openziti/foundation/v2 v2.0.59 h1:PJwrcTq62x+cONBeKMlnsuphsTlOvTz8j8prYnehm8o=
307307
github.com/openziti/foundation/v2 v2.0.59/go.mod h1:76gmsdIBHvv4O3I0TuFBfO58Rv7YN8FA0ojwYz27ZxE=
308-
github.com/openziti/identity v1.0.100 h1:FTkbhykDCMw1z/wxEeDfmq1aBp2tLRjZ3ggioRT4pg8=
309-
github.com/openziti/identity v1.0.100/go.mod h1:E4SHqfXaZldDCo/GIdSD/Xg61obuolWYg9Qe8lqGUrQ=
310-
github.com/openziti/metrics v1.4.0 h1:uZALaZINoTFqRE3XcVZ/xGuvXJpDhn/a0kxaX586lzE=
311-
github.com/openziti/metrics v1.4.0/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
308+
github.com/openziti/identity v1.0.101 h1:XujPT6eCv3Gqsodh9846EoWfQZwDAFrjPLxm1cipveY=
309+
github.com/openziti/identity v1.0.101/go.mod h1:OZLcSf2wGqAa7/8SmbwLQxv0Gsv4i4pxTk83WPHIr+o=
310+
github.com/openziti/metrics v1.4.1 h1:JMnfmW8liTzmqJpd7HDPCSvDDFg1UrE0WoLhW9XdIG8=
311+
github.com/openziti/metrics v1.4.1/go.mod h1:MOLcoTxhPNla6+NWUCMVTnl1PNqTU40qrbKVa/lVVgg=
312312
github.com/openziti/secretstream v0.1.32 h1:89/ZVcwIQjdVmWDfVRfMEChJJXTLXJ59AYBw5j646M4=
313313
github.com/openziti/secretstream v0.1.32/go.mod h1:8YaIbjyMwBeKQ7eOYcoVPKHT10u+4OVPXpnZAeDzC6o=
314314
github.com/openziti/transport/v2 v2.0.168 h1:1Anf7X+4xmSKQ12GdPJFhoMZi04QxgD4MJu3agFc1R4=

inspect/inspect.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package inspect
2+
3+
type SdkInspectResponse struct {
4+
Errors []string `json:"errors"`
5+
Success bool `json:"success"`
6+
Values map[string]any `json:"values"`
7+
}

0 commit comments

Comments
 (0)