Giter Club home page Giter Club logo

sdk-sriov's Introduction

Network Service Mesh SR-IOV sdk

This repo is for SR-IOV sdk code

sdk-sriov's People

Contributors

anastasia-malysheva avatar denis-tingaikin avatar edwarnicke avatar glazychev-art avatar haiodo avatar lioneljouin avatar mixaster995 avatar nikitaskrynnik avatar nsmbot avatar pperiyasamy avatar semenov-spirent avatar sol-0 avatar valeriy-simakov avatar wazsone avatar xzfc avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

sdk-sriov's Issues

VFIO tests are unstable

Failure logs

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

Reset all VFs for the PF on creation

Issue

PF entity should be created with all VFs set to some default state to prevent clients from stealing reusing someone else configuration.

Solution

Delete all VFs for PF and create them again on PF entity creation.

SR-IOV forwarder fails with panic on NSMgr restart

Env description

Packet automation server.

Steps to reproduce

  1. Execute steps from SR-IOV kernel test without cleanup.
  2. Restart one of NSMgr pods.

Actual result

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

Expected result

No panics, no restarts.

implement resource pool client

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?

implement sriov token server chain element

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.

Rework VFIO Tests

Issue

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.