This repo is for SR-IOV sdk code
networkservicemesh / sdk-sriov Goto Github PK
View Code? Open in Web Editor NEWSR-IOV related SDK components
License: Apache License 2.0
SR-IOV related SDK components
License: Apache License 2.0
We’d like to be able to support mechanism for VLAN or VXLAN push/pop of tags as a ‘remote’ mechanism being crossed connected to by the NIC.
With the merging of networkservicemesh/sdk-kernel#231
sdk-sriov should be adapted to use connectioncontextkernel from sdk-kernel
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x168fa60]
goroutine 52 [running]:
github.com/networkservicemesh/sdk-sriov/pkg/tools/cgroup.(*device).isWiderThan(0xc00010e0c0, 0x0, 0x17698e0)
/Users/runner/work/sdk-sriov/sdk-sriov/pkg/tools/cgroup/device.go:95 +0x60
github.com/networkservicemesh/sdk-sriov/pkg/tools/cgroup.(*fakeCgroupDevices).allow(0xc00000e840, 0x0)
/Users/runner/work/sdk-sriov/sdk-sriov/pkg/tools/cgroup/fake_cgroup.go:138 +0x114
github.com/networkservicemesh/sdk-sriov/pkg/tools/cgroup.newFakeCgroup.func2(0x0, 0x0)
/Users/runner/work/sdk-sriov/sdk-sriov/pkg/tools/cgroup/fake_cgroup.go:92 +0xea
github.com/networkservicemesh/sdk-sriov/pkg/tools/cgroup.inputFileAPI.func1(0xc000010178, 0x18c8308, 0xc00006f2c0, 0xc000064800)
/Users/runner/work/sdk-sriov/sdk-sriov/pkg/tools/cgroup/file_api.go:54 +0xdf
created by github.com/networkservicemesh/sdk-sriov/pkg/tools/cgroup.inputFileAPI
/Users/runner/work/sdk-sriov/sdk-sriov/pkg/tools/cgroup/file_api.go:47 +0x150
FAIL github.com/networkservicemesh/sdk-sriov/pkg/networkservice/common/mechanisms/vfio 1.443s
https://github.com/networkservicemesh/sdk-sriov/pull/276/checks?check_run_id=3744951908
PF entity should be created with all VFs set to some default state to prevent clients from stealing reusing someone else configuration.
Delete all VFs for PF and create them again on PF entity creation.
We need to rework SRIOV VFs looking at experience with vlan and vxlan push/pop tags mechanic. See at https://github.com/networkservicemesh/sdk-kernel/pulls?q=is%3Apr+is%3Aclosed+vlan+
sdk-kernel has been refactored in networkservicemesh/sdk-kernel#231
and now sdk-kernel is not compatible with sdk-sriov https://github.com/networkservicemesh/sdk-kernel/runs/2858487871
To avoid this issue on releasing we used the latest compatible sdk-kernel version with updated deps to sdk and api: networkservicemesh/sdk-kernel@release/v1.0.0...main
Packet automation server.
Corresponding forwarder pod restarts with panic:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x30 pc=0xbcf772]
goroutine 17421 [running]:
github.com/networkservicemesh/sdk-sriov/pkg/networkservice/chains/xconnectns.(*sriovServer).Request(0xc000302090, 0xeb8fe0, 0xc00093f650, 0xc000536e60, 0xcb9560, 0xc00093f620, 0xeb8fe0)
<autogenerated>:1 +0x32
github.com/networkservicemesh/sdk/pkg/networkservice/core/next.(*nextServer).Request(0xc00093f5f0, 0xeb8fa0, 0xc000018a20, 0xc000536e60, 0xc00093f5f0, 0xc0002fa390, 0xea4fe0)
/go/pkg/mod/github.com/networkservicemesh/[email protected]/pkg/networkservice/core/next/server.go:69 +0x25a
github.com/networkservicemesh/sdk/pkg/networkservice/core/adapters.(*serverToClient).Request(0xc0003020a0, 0xeb8fa0, 0xc000018a20, 0xc000536e60, 0x0, 0x0, 0x0, 0xc0002fa380, 0xc0002fa2d0, 0x0)
/go/pkg/mod/github.com/networkservicemesh/[email protected]/pkg/networkservice/core/adapters/server_to_client.go:45 +0x117
github.com/networkservicemesh/sdk/pkg/networkservice/common/heal.(*healServer).restoreConnection(0xc00033c6e0, 0xeb8f20, 0xc000143700, 0xc0005366e0, 0x0, 0x0, 0x0)
/go/pkg/mod/github.com/networkservicemesh/[email protected]/pkg/networkservice/common/heal/server.go:367 +0x385
github.com/networkservicemesh/sdk/pkg/networkservice/common/heal.(*healServer).healAsNeeded(0xc00033c6e0, 0xeb8fe0, 0xc000878720, 0xc0005366e0, 0xc000447140, 0x0, 0x0, 0x0)
/go/pkg/mod/github.com/networkservicemesh/[email protected]/pkg/networkservice/common/heal/server.go:218 +0x6da
created by github.com/networkservicemesh/sdk/pkg/networkservice/common/heal.(*healServer).startHeal
/go/pkg/mod/github.com/networkservicemesh/[email protected]/pkg/networkservice/common/heal/server.go:161 +0xb9
No panics, no restarts.
example of config:
networkservicemesh/cmd-forwarder-sriov#9 (comment)
--race
.Fix all found databases.
https://github.com/networkservicemesh/sdk-sriov/actions/runs/951914926
This repo contains resource pool server implementation which helps to select VF from right resource pool based on tokenID passed from client in the service request.
Can we also extend it to have client implementation so that VF attachment support available for endpoint container?
The sdk-sriov repo already contains sriov token client chain element which can be used by NSCs to create service request with tokenID to request for VF attachment.
But there is no server chain element exists so that NSEs can issue available token id via mechanism parameter for every client connection request, this token id can be later used by forwarder to attach a dedicated VF for every client connection. This chain element should be also an idempotent for the existing client connection. When no tokens are present for new client connections, then consider skipping it and execute subsequent chain element.
We have multiple test case stability issues:
In order to increase tests stability, test infrastructure and reading/writing from files and pipes (file API) should be reworked as the root cause is related to I/O operations not being fast enough to complete during the limited test time.
When we tried to fix the issue #330, it turned out that even 300 ms
timeout was not good enough to guarantee the test stability.
Right now SR-IOV forwarder will copy Kernel, vfio mechanisms with individual PCIAddresses specified, but I think we need a generic solution to pass a list of available PCIAddress list for Endpoint to choose.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.