Proto commits in openconfig/kne

These 79 commits are when the Protocol Buffers files have changed:

Commit:20bd60e
Author:Kris Raney
Committer:GitHub

[meshnet] multiplex tcp streams for a node pair (#733) * [meshnet] multiplex tcp streams for a node pair 1. Created nodeStreamManager (stream_manager.go): • Keyed by nodeStreamKey{ topoNs string, peerIP string }. • Opens only one gRPC connection (grpc.Dial) and only one SendToStream bidirectional streaming RPC per (peerIP, topoNs) pair. • Includes reference counting (GetOrCreateStream / ReleaseStream). When the last wire for a topology targeting a peer node is removed, the shared stream and gRPC connection close gracefully. • Features a high-capacity buffered channel (10,000 packet queue) and dedicated sender worker loop with automatic reconnect logic. 2. Updated TAP Reader Threads (grpcwire.go): • Modified RecvFrmLocalPodThread so TAP readers no longer execute individual grpc.Dial or SendToStream calls. • Each TAP reader now acquires the shared topology stream via nodeStream := streamMgr.GetOrCreateStream(wire. TopoNamespace, wire.PeerNodeIP) and multiplexes packets into nodeStream.Send(payload). 3. Per-Topology Isolation: • Topology topo-A and topology topo-B running between the same pair of physical nodes maintain completely separate gRPC connections and streams. * [meshnet] Reduce startup time for large meshes The base design had a lot of single-interface RPCs to update k8s and remote meshnets. For large numbers of links it costs a lot of serial round trip wait time. This batches things and pipelines them so that we avoid a lot of unnecessary overhead delay at start time. * Review comments - multi-topology and general dead code cleanup ### 1. Unused getEnvString in sys_tune.go • Removed the unused private helper sys_tune.go. ────── ### 2. Remove gwire_recon.go • Removed the obsolete single-wire gwire_recon.go function, as all updates are now handled by gwire_recon.go. • Updated the gwire_recon.go doc comment. ────── ### 3. Namespace Isolation in Status Batch Updates • Problem: gwire_recon.go used updates[0].wire.TopoNamespace for the entire batch, which caused cross-namespace collisions when multiple topologies ran on the same cluster. • Fix: Updated gwire_recon.go to group updates by statusGroupKey{nodeName, topoNs} and delegate each group to gwire_recon.go. • Added unit test gwire_recon_test.go in gwire_recon_test.go to verify concurrent multi-namespace status updates. ────── ### 4. Unused s.conn and s.mu in stream_manager.go • s.conn was assigned in run() but never read elsewhere because the active connection lifecycle is managed directly by drainAndSend(ctx, cancel, conn, stream) (which closes conn in its defer block upon termination). • Removed the unused conn and mu fields from stream_manager.go along with the redundant mutex locking. ────── ### 5. Additional Dead Code Cleanup • **grpcwire.go**: • Removed unused (w *wireMap) Delete method. • Simplified grpcwire.go to delegate to grpcwire.go, eliminating duplicated locking and update logic. • **gwire_map.go**: • Removed unused (w *wireMap) DeleteWoLock method. • **handler.go**: • Removed commented-out legacy call in handler.go. * Fix AI-discovered issues #### 1. Status Queue Deadlocks & Ghost Wires • gwire_recon.go: • Replaced the scalar flushSignal chan struct{} in gwire_recon.go with a slice (flushSignals []chan struct{}) so all flush requests in a batch are tracked and closed without overwrites. • Added wire.mu.Lock() / wire.mu.Unlock() to gwire_recon.go to eliminate data races against concurrent peer updates. • Added gwire_recon.go to gwire_recon.go before calling deleteGRPCWireStatus. • Added in-memory presence checks via grpcwire.go in gwire_recon.go and gwire_recon.go to prevent writing deleted wires back into K8s. • Handled apierrors.IsNotFound(err) gracefully in gwire_recon.go. #### 2. Leaked TAP File Descriptors on Wire Deletion • gwire_map.go & grpcwire.go: • Added wires.CloseAndRemoveHandle(key) to close the underlying *os.File and delete it from wires.handles. • Updated gwire_map.go to avoid deleting the handle prematurely before grpcwire.go closes it. • Updated grpcwire.go and gwire_map.go to close and remove TAP file descriptors. #### 3. Goroutine & Buffer Leak on Teardown • grpcwire.go: • Made packet channel writes in grpcwire.go select on <-wire.StopC. If teardown occurs, the reader immediately returns the buffer to packetPool and exits cleanly. #### 4. Controller Batch Error Handling & Bounds Checking • controller.go: • Added nil checks for batchResp and slice bounds validation against chunkLinks. • Captured individual remote link creation failures and returned an aggregate errors.Join(batchErrs...) from controller.go so the reconciler retries when remote wire setup fails. #### 5. Duplicate Packet Receive Goroutines & Stream Refcount Leaks • gwire_rpc_handlers.go & handler.go: • Updated gwire_rpc_handlers.go to return (wire *GRPCWire, created bool, err error). • Updated handler.go and handler.go to only spawn grpcwire.go when created == true. #### 6. Throttled Reconnection on Send Errors • stream_manager.go: • Added a backoff delay in stream_manager.go after stream_manager.go returns due to connection drops, preventing 100% CPU spin loops while continuing to respect stopChan.

Commit:12725d8
Author:Kris Raney
Committer:GitHub

Remove limitation preventing high link counts (#717) * Add testing specifically for the 1500 link case * Use pod affinity / antiaffinity for determinism Rather than leaving it to chance, explicitly make a test for local veth vs remote vxlan * Create a helper to replace koko This has these properties for better performance * Gathers all changes for a given pod (i.e. netns) into a batch * Sets up veths, moves them, etc within a single netns context change for the pod batch. (Well, actually two.) * Uses deterministic names so that idempotent recovery from a mid-batch crash is doable. * Shift the work of creating interfaces to meshnetd This simplifies the CNI plugin so that it can reliably return within K8s' time limit. It has meshnetd do the work of creating interfaces and moving them into the pod's netns. This has important benefits * It eliminates the skip / don't skip multiprocess coordination between paired pods, which otherwise causes many network round trips both between the plugin and meshnetd, and also meshnetd and kubeapi. * Meshnetd can much more easily batch operations within a pod namespace. This reduces the number of expensive netns system calls with large numbers of links It has a side effect that the CNI plugin returns before all interfaces are present. (Really, before ANY are present.) That lets the pod go RUNNING before the interfaces are ready. However, this was always true for interfaces that are skipped (that is, the other end of the link is responsible for setting it up.) The init-wait container already exists to address this already-present problem. * Use init-wait to make sure all interfaces are present Before the pod is running, thus before pings happen * Have the CNI plugin wait for link up This is bounded, it waits for up to 5 seconds. For existing common small topologies, this will make sure the interfaces are all ready before the pod is considered running (before the main container starts.) This is actually an improvement over the prior code, since the prior code didn't account for skipped interfaces (ones where the other pod is responsible for creating it.) This implementation does consider that. If creation takes longer than the limit, then CNI plugin returns to avoid any risk of timeouts. The container can start, but will need to wait for interfaces to show up asynchronously. The existing init-wait image, used as an init container, already addresses this case (because of the skipped links before.) * Cover vxlan and grpcwire cases also veth local proved the change works to allow 1500 interfaces, so now fix the other modes under the new implementation. This CL moves the responsibility of plumbing remote links (VXLAN and gRPC wires) from the CNI plugin to the meshnetd controller. - Extended wireutil.PodLinkConfig to parse peer_intf and peer_ip. - Implemented stateless remote VXLAN tunnel creation inside the controller loop. - Implemented remote gRPC wire dialing and connection establishment initiated by the higher-priority node. - Fixed a lookup key mismatch in the daemon's in-memory wires database, aligning it to use the netNS path instead of the Kubernetes namespace. - Fixed a bug where AddWireInMemNDataStore was overriding the wire's readiness state, preventing peer interface ID updates. * Allocate VXLAN VNIs in namespace-isolated blocks Calculates VXLAN VNIs using a namespace-specific block offset to prevent VNI conflicts when multiple topology namespaces are deployed on the same Kind nodes. - Added wireutil.NamespaceVNIOffset helper to hash the namespace name to a 24-bit VNI block. - Updated daemon controller to compute VNI using the namespace offset. * Report network plumbing errors in Topology resource status Extends the Topology CRD schema and daemon controller to propagate plumbing errors (such as VNI conflicts) back to Kubernetes, making troubleshooting much easier. - Added status.plumbing_error field to Topology CRD validation schema. - Added deepcopy annotations to Topology substructs and regenerated zz_generated.deepcopy.go. - Wrapped ReconcilePodLinks to write back errors to status.plumbing_error on failure, and clear them on success. - Propagated MakeVxLan errors out of vxlan.CreateOrUpdate instead of swallowing them. - Mark skipped field as deprecated * Have CNI wait for 15 seconds The goal of this delay is to prevent a behavior change for existing common case tests that are quick to come up. This has the CNI plugin wait till interfaces are all ready, so in these simple cases init-wait isn't necessary. This change adds a little more margin in support of that. * Use the CNI plugin start time to set a deadline This way even if the early work causes delays, we're bounded within the CNI plugin's deadline * [meshnet] Update kustomize so it doesn't break lint To avoid needing to manually fix this every time * Fix protolint errors --------- Co-authored-by: marcushines <80116818+marcushines@users.noreply.github.com>

Commit:c7bd450
Author:marcushines
Committer:GitHub

Add initial support for Ciena (saos and waverouter) (#708) * Add initial support for Ciena (saos and waverouter) * Modified proto/topo/topo.proto * add Ciena vendor and ciena_saos type * Modified proto/topo/topo.pb.go * changes generated by topo.proto * Modified topo/topo.go * add ciena node into import * Added topo/node/ciena/ciena.go * ciena node implementation * Added proto/ciena.proto * add Ciena proto - define Ciena specific vendor data for KNE * Added proto/ciena/ciena.pb.go * file generated by proto/ciena.proto * fix lint issue and comments * fix markdown and json errors * fix markdown lint * Fix linter errors --------- Co-authored-by: Anh Nguyen <tranguye@ciena.com> Co-authored-by: Brandon Stoll <bstoll@users.noreply.github.com>

Commit:f57ab15
Author:marcushines
Committer:GitHub

Merge branch 'main' into hines-fork

Commit:6aa288a
Author:Kris Raney
Committer:GitHub

Import meshnet under KNE maintenance (#709)

Commit:a0448bb
Author:Anh Nguyen
Committer:Marcus Hines

Add initial support for Ciena (saos and waverouter) * Modified proto/topo/topo.proto * add Ciena vendor and ciena_saos type * Modified proto/topo/topo.pb.go * changes generated by topo.proto * Modified topo/topo.go * add ciena node into import * Added topo/node/ciena/ciena.go * ciena node implementation * Added proto/ciena.proto * add Ciena proto - define Ciena specific vendor data for KNE * Added proto/ciena/ciena.pb.go * file generated by proto/ciena.proto

Commit:4acfd5f
Author:marcushines
Committer:GitHub

Add Sonic node type (#701) * Add Sonic node type * fix formating

The documentation is generated from this commit.

Commit:2f54ebf
Author:pranaysameer
Committer:GitHub

Add support for IN_CLUSTER_PROXY node type (#681) * Add support for IN_CLUSTER_PROXY node type - Update proto/topo.proto with `IN_CLUSTER_PROXY` in Vendor and `Node.Type` enums. - Create `topo/node/inclusterproxy` package implementing `Node` interface. - Set default image to `nicolaka/netshoot:latest` and enforce at least 1 `Service`. - Enforce link constraints to allow exactly one interface (`eth1`). - Add warning if `socat` is missing from `Command` or `Args`. - Update `topo/topo.go` to register the new node type. - Add unit tests in `topo/node/inclusterproxy/inclusterproxy_test.go`. * Add support for IN_CLUSTER_PROXY node type - Update proto/topo.proto with `IN_CLUSTER_PROXY` in Vendor and `Node.Type` enums. - Create `topo/node/inclusterproxy` package implementing `Node` interface. - Set default image to `nicolaka/netshoot:latest` and enforce at least 1 `Service`. - Enforce link constraints to allow exactly one interface (`eth1`). - Enforce that `proxy-pool-for` label is present in static configuration. - Add static validation assuring `eth1` is connected directly to the node given in `proxy-pool-for`. - Add automatic `socat` command generation using `peer-ip` and `target-port` labels: - Supports IPv4 address allocation arithmetic using `/31` masks. - Adds IPv6 support using `/127` arithmetic and handles `TCP6-LISTEN` argument switches. - Update `topo/topo.go` to register the new node type. - Update `topo/topo.go` to register the new node type. - Add unit tests in `topo/node/inclusterproxy/inclusterproxy_test.go`. * Fix config labels for peer ip * Rename calculateStaticIP to deriveAdjacentIP * Fix typos * Fix failing valid_pb_with_automatic_generation_ipv * Fix lint errors

Commit:3560302
Author:jasdeep-hundal
Committer:GitHub

Default to kne-external for all publicly available container images (#639) * Add image repository option for kubeadm deployments Add image repository option for kubeadm deployments, defaulting to the 'kne-external' repo used elsewhere in KNE. * Regenerate protos after adding image_repository field * Substitute repo for default containerd pause image * Arista node should use default init image * IxiaTG node should use default init image * Nokia node should use default init image

Commit:99f3ff9
Author:Jasdeep Hundal
Committer:Jasdeep Hundal

Add image repository option for kubeadm deployments Add image repository option for kubeadm deployments, defaulting to the 'kne-external' repo used elsewhere in KNE.

Commit:7e50460
Author:marcushines
Committer:Neha Manjunath

Fix for adding topology into the return of create topology (#617)

Commit:22c3268
Author:marcushines
Committer:GitHub

Fix for adding topology into the return of create topology (#617)

Commit:38d759c
Author:Marcus Hines
Committer:Marcus Hines

Fix for adding topology into the return of create topology

Commit:1c32b83
Author:Daniel Grau
Committer:GitHub

Add support for additional files for Alpine (#564)

Commit:874ad9a
Author:William Dye
Committer:GitHub

Add inside_ip to node and populate it in topo.Show (#559) * Add inside_ip to node and populate it in topo.Show * Rename inside_ip to pod_ip and update proto comment

Commit:9dcbf29
Author:Alex Masi
Committer:GitHub

Add FORWARD node type and implementation (#552) * Add intf read/writer * add fwd node type definition * fix fwd proto * add forward container * add license * fix test * lint * lint

Commit:49dfbf2
Author:Alex Masi

lint

Commit:396ff82
Author:Alex Masi

fix fwd proto

Commit:3d799bf
Author:Alex Masi

add fwd node type definition

Commit:3929cc9
Author:Alex Masi
Committer:GitHub

Add external grpc wire support (#548) * add grpc wire * cleanup file structure * remove bin * implement common wire library * fix goroutines * go mod tidy * lint * add tests * add license

Commit:a1790f7
Author:Alex Masi

add cert type

Commit:a682615
Author:Alex Masi
Committer:GitHub

Add credential provider option to kubeadm (#533) * Add credential provider option to kubeadm * add unit test * fix string manipulation

Commit:a48ea9f
Author:Alex Masi
Committer:GitHub

Add Kubeadm to topology manager (#527) Add functionality to topology manager to get information about cluster token

Commit:97d11f1
Author:NehaManjunath
Committer:GitHub

Proto changes (#522) * Proto changes * Fix linter --------- Co-authored-by: Neha Manjunath <nehamanjunath@google.com>

Commit:9bd8580
Author:Neha Manjunath

Fix linter

Commit:bfcf7e8
Author:Neha Manjunath

Merge branch 'main' into interface-type

Commit:5e92c29
Author:Alex Masi
Committer:GitHub

Add kubeadm join to topo manager (#521) add kubeadm join to topo manager

Commit:66ccbc0
Author:Neha Manjunath

Proto changes

Commit:ed02645
Author:David Avnerson
Committer:GitHub

Adding Drivenets vendor (#480) * Adding Drivenets Vendor support * Adding Drivenets Vendor support * update vendor service defaults * modified after review * go mod tidy + go fmt * create Volume based on configMap * use errdif for unit test and modified controller.proto * added default config file and path

Commit:bf42d07
Author:Alex Masi
Committer:GitHub

remove trailing whitespace (#487)

Commit:ce83887
Author:NehaManjunath
Committer:GitHub

Support multiple services in topo proto (#486) Co-authored-by: Neha Manjunath <nehamanjunath@google.com>

Commit:4c0bf99
Author:Neha Manjunath

Support multiple services in topo proto

Commit:47b283f
Author:sonikajindal
Committer:GitHub

Alpine kne node for Alpine Virtual Switch (#470) * Add Alpine KNE node * Add Alpine node type * Add alpine proto * Fix test topo * Add name of dataplane container * Fix pod creation * Add alpine test topology proto * Add unittest * Address review comments * Address review comments * Address review comments * Add Todo for constraint * Add Todo for constraint * Add Todo for constraint * Fix unittest and formatting * Fix * Fix * Fix * Fix linter error * Fix linter error

Commit:7ecf53e
Author:Alex Masi
Committer:GitHub

Add apply kubeyaml rpc to KNE grpc server (#464) * Add apply cmd to KNE * fix impl * address comments * linter * add tests * linter

Commit:f2da5fc
Author:Alex Masi
Committer:GitHub

fix trailing whitespace and update comment (#418) * fix trailing whitespace and update comment * fix lint

Commit:62666fe
Author:NehaManjunath
Committer:GitHub

Proto changes for host constraints (#415) * Proto changes for host constraints * Fix linter issues * Resolve comments * Review comments * Incorporate comments * Address comment --------- Co-authored-by: Neha Manjunath <nehamanjunath@google.com>

Commit:68c2b78
Author:Alex Masi
Committer:GitHub

Add event proto (#387) * Add event proto * fix formatting * fmt proto * Add comments to proto

Commit:b5b54b9
Author:marcushines
Committer:GitHub

Fix trailing whitespace in topo.proto (#334)

Commit:c6aa7b2
Author:marcushines
Committer:GitHub

Add multivendor topology and valid configurations for ceos and xrd (#321) fix AS and isis loopback fix external port numbers Make new comments based on services clarification

Commit:94b0065
Author:Alex Masi
Committer:GitHub

Revert "Revert "Support specify manifests/operators as both raw data … (#320) * Revert "Revert "Support specify manifests/operators as both raw data and filepaths" (#319)" This reverts commit 2bacfe39af92d8b5037d9b22d6d41271907c7c7b. * Add backwards compat * Remove changes to api * revert debug change

Commit:2bacfe3
Author:marcushines
Committer:GitHub

Revert "Support specify manifests/operators as both raw data and filepaths" (#319) Revert "Support specify manifests/operators as both raw data and filepaths (#317)" This reverts commit eef1a2d88de166722b66270a464e924bea0c7135.

Commit:eef1a2d
Author:Alex Masi
Committer:GitHub

Support specify manifests/operators as both raw data and filepaths (#317) * Update proto fields * Support raw data and filepaths * Support files or data * fix tests * retain existing proto fields, deprecated to delete later * Lint

Commit:5859e7f
Author:Daniel Grau
Committer:GitHub

Lemming node impl uses operator (#275) * Lemming node impl uses operator * init image * use the right commit for lemming + test fix * feedback

Commit:01303ee
Author:Alex Masi
Committer:GitHub

Add external cluster option to specify docker network name (#263) * Add external cluster option to specify docker network name * Add example external dep cfg * fix proto

Commit:420b39b
Author:Oscar Frasier
Committer:GitHub

Add vendor data, update arista operator to v2.0.1 (#253) - Add a vendor_data field to the node proto This allows the arista node to override feature toggles and block startup acknowledgement on certain internal processes. - Define an arista-specific config type This is in proto/ceos and define APIs for the above features - Upgrade to the v2.0.1 of the arista operator A new major version was needed for a breaking change related to testing. The existing uint32 fields did not serialize properly when using the dynamic fake, which was needed to test the CRD generation with vendor-specific data (and address a general coverage gap, too). - Switch to the arista operator dynamic client Previously, we were using the REST client.

Commit:6a700bf
Author:Alex Masi
Committer:GitHub

Add external cluster type (#245) * Add external cluster type * Add extra health check * lint * Generate protos * fix broken presubmit

Commit:fe05480
Author:Alex Masi
Committer:GitHub

Remove references to node type (#244) * Remove references to node type * Fix tests * Deprecate field instead of reserving it for now

Commit:9c3f3a8
Author:Alex Masi
Committer:GitHub

Add controllers to manifests (#221) * Add controllers to manifests * cleanup tests and protos * Simplify manifests * Fix container versions * srl version

Commit:6d57b9f
Author:Alex Masi
Committer:GitHub

Add arista operator deployment in kne (#214) * Add arista operator deployment in kne * Update cli * fix cisco

Commit:1a11a00
Author:Daniel Grau
Committer:GitHub

Add basic lemming node implementation (#206) * Add basic lemming node implementation * feedback * feedback * Fix linter to use existing protolint.yaml * move lint config

Commit:1e161cb
Author:Alex Masi
Committer:GitHub

Add proto fields for controller push/reset cfg rpcs (#190)

Commit:b0820c4
Author:Alex Masi
Committer:GitHub

Add srl controller to `kne_cli deploy` (#174) * Add srlinux controller to deployment * Fix cli + server for srl * Add tests * Fix protoc version * linter * Linter * update proto enum * linter * Fix rebase * Fix more rebase issues

Commit:5bf2e31
Author:Alex Masi

Update proto packages

Commit:02c13da
Author:Ashutosh Kumar
Committer:GitHub

Added support for annotating interface groups in KNE topology (#146) * added support for annotating interface groups in KNE topology * added examples for topology containing interface groups * upgraded protoc-gen-go

Commit:ec2e970
Author:marcushines
Committer:GitHub

create generate file for protos to keep them synced (#144)

Commit:9a10c7b
Author:alexmasi

fix formatting

Commit:0ff4bd7
Author:alexmasi

Add controller spec to controller proto + fmt protos

Commit:1e78d9b
Author:Alex Masi

Add container loading to topo manager protos

Commit:3ff1725
Author:Greg Dennis
Committer:GitHub

spelling fixes

Commit:25b033c
Author:mojiiba
Committer:GitHub

modify cisco nodes (#91) * improve cisco nodes * add a comment * fix handling of invalid interface id and improve the code * refator the interface mapping * Update cisco.go fix the duped regex check Co-authored-by: marcushines <80116818+marcushines@users.noreply.github.com>

Commit:f49f07a
Author:Shubh Mondal

Add topology proto to ShowTopologyResponse

Commit:18c19e3
Author:Shubh Mondal

resolving PR comments with modifications

Commit:d6c2f7c
Author:Shubh Mondal

Update controller service proto with creating cluster design modifications

Commit:1acfb64
Author:shubh90
Committer:GitHub

Sm controller (#79) * initial version of controller service proto * initial version of controller service proto * initial version of controller service proto * initial version of controller service proto * change CreateTopologyRequest message to take topology proto * Addressed topology state questions from design doc * Update Pod states

Commit:0878e92
Author:Marcus Hines

Add support for Cisco XRD node type

Commit:9f4a5a8
Author:Alex Masi
Committer:GitHub

Add proto option to change init container for new pods (#69) * add init_container option to node proto * fix generated proto * change name and line length * remove internal example

Commit:28bc2d9
Author:Marcus Hines
Committer:GitHub

Refactor to remove the node struct to implementation layer Now all vendor implementations are directly referenced from the topology manager This allows for simpler testing and modifications to each implementation. (#46) * Update go.mod to 1.17 and address dependabot library issue * WIP for moving node to interface and refactor topo manager use only the interface directly * Refactor to remove the node struct to implementation layer Now all vendor implementations are directly referenced from the topology manager This allows for simpler testing and modifications to each implementation. * fix test * fix up comments Co-authored-by: Marcus Hines <hines@google.com> Co-authored-by: marcushines <80116818+marcushines@users.noreply.github.com>

Commit:6c04098
Author:shubh90
Committer:GitHub

delete whitespaces in topo.proto (#51)

Commit:a923f20
Author:shubh90
Committer:GitHub

delete trailing white spaces (#50)

Commit:7f2070e
Author:Marcus Hines
Committer:GitHub

Add Go BGP node into KNE (#44) * Update ubuntu dockerfile to include extra apps for troubleshooting also add serviceaccount role setup and pod start * add gobgp as a node type * Update gobgp_test.go Co-authored-by: marcushines <80116818+marcushines@users.noreply.github.com>

Commit:15930d9
Author:Marcus Hines
Committer:GitHub

Add Version/model/vendor into proto. (#30) * Add Version/model/vendor into proto. * add interface peer * fix lint * Update topo.proto Co-authored-by: marcushines <80116818+marcushines@users.noreply.github.com>

Commit:46f49de
Author:marcushines
Committer:GitHub

fix service implementation to properly expose node port as well as internal and outside ports (#16) * fix service implementation to properly expose node port as well as internal and outside ports * fix names in mixed topology and remove profile from withtraffic * fix typo

Commit:8912f04
Author:marcushines
Committer:GitHub

Add support for cli command and initial bringup for generation of self signed certs on arista nodes (#13) * Add support for cli command and initial bringup for generation of self signed certs on arista nodes * fix lint warnings * fix last lint * address comments from alex

Commit:3aa4b28
Author:marcushines
Committer:GitHub

Add support for pushing a config file on arista node start (#10)

Commit:9f0a59e
Author:Marcus Hines

Change topo enums to pass lint Add Proto linter to repo so we don't introduce lint issues update all examples to use new enum values and regenerated pb.go files

Commit:85670fd
Author:Marcus Hines

Add Keysight Ixia TG and regenerate topo proto

Commit:b6486d7
Author:Marcus Hines
Committer:Marcus Hines

Fix node config to properly merged with defaults for all node types

Commit:2464e18
Author:Marcus Hines

Add node type handlers

Commit:8f47e5d
Author:Marcus Hines
Committer:Marcus Hines

Initial checkin of all code and license