diff --git a/go.mod b/go.mod index 2427d47b9..e5cd553d6 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/netfoundry/secretstream v0.1.2 github.com/openziti/channel v0.18.28 - github.com/openziti/fabric v0.17.106 + github.com/openziti/fabric v0.17.109 github.com/openziti/foundation v0.17.22 github.com/openziti/sdk-golang v0.16.54 github.com/openziti/storage v0.1.4 @@ -49,10 +49,10 @@ require ( github.com/teris-io/shortid v0.0.0-20201117134242-e59966efd125 github.com/xeipuuv/gojsonschema v1.2.0 go.etcd.io/bbolt v1.3.6 - golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 + golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd golang.org/x/sync v0.0.0-20210220032951-036812b2e83c - golang.org/x/sys v0.0.0-20220412211240-33da011f77ad + golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 gopkg.in/resty.v1 v1.12.0 gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b diff --git a/go.sum b/go.sum index afaa98833..184cfade4 100644 --- a/go.sum +++ b/go.sum @@ -611,8 +611,8 @@ github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTm github.com/openziti/channel v0.18.28 h1:LTsp+ywYp9uIr0OIPzeUBYoAIKA70CU0QsJqXa+YkJA= github.com/openziti/channel v0.18.28/go.mod h1:YDGdH2I8tJ76WQgHTprgHX6dV9MBlrc1nOYpMY8h8+A= github.com/openziti/dilithium v0.3.3/go.mod h1:vsCjI2AU/hon9e+dLhUFbCNGesJDj2ASgkySOcpmvjo= -github.com/openziti/fabric v0.17.106 h1:NrSDxSUpNyWNIaaUEL/CCEN4Lp/hqG+ucZS7LJp3+Nc= -github.com/openziti/fabric v0.17.106/go.mod h1:aWW8KTuitUrwpRo2d2IAXVip2L1+kgIbGjdT2sdTPtI= +github.com/openziti/fabric v0.17.109 h1:A/BiP4gAzLG/XTbxYykCYujLgWjR3ISiY5Astf6ufOw= +github.com/openziti/fabric v0.17.109/go.mod h1:aWW8KTuitUrwpRo2d2IAXVip2L1+kgIbGjdT2sdTPtI= github.com/openziti/foundation v0.17.22 h1:zFfgNHdLocEcoBqtognpJnYsVQaTm28EwqMNjBw8avk= github.com/openziti/foundation v0.17.22/go.mod h1:Nnr0vsqovHJimkdBHf2s4ZJAgvNhg6UdVqP+s0nY3P4= github.com/openziti/sdk-golang v0.16.54 h1:Gvejf12HhfDY0+5b55dVi+PEez8Mo5yuMhJD/Uo2NTA= @@ -856,8 +856,9 @@ golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWP golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 h1:kUhD7nTDoI3fVd9G4ORWrbV5NY0liEs/Jg2pv5f+bBA= golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f h1:OeJjE6G4dgCY4PIXvIRQbE8+RX+uXZyGhUy/ksMGJoc= +golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1068,8 +1069,9 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220330033206-e17cdc41300f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0= golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150 h1:xHms4gcpe1YE7A3yIllJXP16CMAGuqwO2lX1mTyyRRc= +golang.org/x/sys v0.0.0-20220422013727-9388b58f7150/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= diff --git a/router/debugops/debugops.go b/router/debugops/debugops.go index df7b6afbd..40d37225e 100644 --- a/router/debugops/debugops.go +++ b/router/debugops/debugops.go @@ -9,6 +9,6 @@ const ( DumpApiSessions byte = 128 ) -func RegisterEdgeRouterDebugOps(router *router.Router, sm fabric.StateManager) { - router.RegisterDebugOp(DumpApiSessions, sm.DumpApiSessions) +func RegisterEdgeRouterAgentOps(router *router.Router, sm fabric.StateManager, debugEnabled bool) { + router.RegisterAgentOp(DumpApiSessions, sm.DumpApiSessions) } diff --git a/router/xgress_edge/fabric.go b/router/xgress_edge/fabric.go index f6952c45e..b231bdf35 100644 --- a/router/xgress_edge/fabric.go +++ b/router/xgress_edge/fabric.go @@ -117,9 +117,13 @@ func (self *edgeXgressConn) HandleControlMsg(controlType xgress.ControlType, hea hop, _ := headers.GetUint32Header(xgress.ControlHopCount) hopType, _ := headers.GetStringHeader(xgress.ControlHopType) hopId, _ := headers.GetStringHeader(xgress.ControlHopId) - requestSeq, _ := headers.GetUint32Header(xgress.ControlCustom1) + requestSeq, _ := headers.GetUint32Header(xgress.ControlUserVal) msg := edge.NewTraceRouteResponseMsg(self.Id(), hop, ts, hopType, hopId) + if traceErr, hasErr := headers.GetStringHeader(xgress.ControlError); hasErr { + msg.PutStringHeader(edge.TraceError, traceErr) + } + msg.PutUint32Header(channel.ReplyForHeader, requestSeq) self.TraceMsg("write", msg) @@ -137,7 +141,7 @@ func (self *edgeXgressConn) HandleControlMsg(controlType xgress.ControlType, hea } ts, _ := headers.GetUint64Header(xgress.ControlTimestamp) - requestSeq, _ := headers.GetUint32Header(xgress.ControlCustom1) + requestSeq, _ := headers.GetUint32Header(xgress.ControlUserVal) msg := edge.NewTraceRouteMsg(self.Id(), hop-1, ts) msg.PutUint32Header(edge.TraceSourceRequestIdHeader, requestSeq) @@ -270,9 +274,9 @@ func (self *edgeXgressConn) Accept(msg *channel.Message) { headers.PutUint64Header(xgress.ControlTimestamp, ts) headers.PutUint32Header(xgress.ControlHopCount, hops) - headers.PutUint32Header(xgress.ControlCustom1, uint32(msg.Sequence())) + headers.PutUint32Header(xgress.ControlUserVal, uint32(msg.Sequence())) - self.ctrlRx.HandleControlReceive(xgress.ControlTypeTraceRoute, channel.Headers(headers)) + self.ctrlRx.HandleControlReceive(xgress.ControlTypeTraceRoute, headers) } else if msg.ContentType == edge.ContentTypeTraceRouteResponse { headers := channel.Headers{} ts, _ := msg.GetUint64Header(edge.TimestampHeader) @@ -285,9 +289,9 @@ func (self *edgeXgressConn) Accept(msg *channel.Message) { headers.PutUint32Header(xgress.ControlHopCount, hopCount) headers.PutStringHeader(xgress.ControlHopType, hopType) headers.PutStringHeader(xgress.ControlHopId, hopId) - headers.PutUint32Header(xgress.ControlCustom1, sourceRequestId) + headers.PutUint32Header(xgress.ControlUserVal, sourceRequestId) - self.ctrlRx.HandleControlReceive(xgress.ControlTypeTraceRouteResponse, channel.Headers(headers)) + self.ctrlRx.HandleControlReceive(xgress.ControlTypeTraceRouteResponse, headers) } else { if err := self.seq.Push(msg); err != nil { pfxlog.Logger().WithFields(edge.GetLoggerFields(msg)).Errorf("failed to dispatch to fabric: (%v)", err) diff --git a/router/xgress_edge/perf_test.go b/router/xgress_edge/perf_test.go index 9442e663c..589c856f6 100644 --- a/router/xgress_edge/perf_test.go +++ b/router/xgress_edge/perf_test.go @@ -38,6 +38,10 @@ type mirrorLink struct { acks chan *xgress.Acknowledgement } +func (link *mirrorLink) IsClosed() bool { + return false +} + func (link *mirrorLink) InspectCircuit(circuitDetail *inspect.CircuitInspectDetail) { }