Граф коммитов

16 Коммитов

Автор SHA1 Сообщение Дата
Chris Freehill bf412e3f76 Move docs/README.md to root
Also:
* consolidated the info in the previous rdc/README.md into
the README.md that was moved from docs/ directory.
* added missing information to get grpc into the default
library path (needed to add the grpc dir with ldconfig).
* formatting fixes

Change-Id: Id61e761ad7bdee40364bb8837be8705ed5ca53d1
2020-08-18 17:45:33 -04:00
Bill(Shuzhou) Liu 9209c6c516 RDC python binding
A new folder python_binding is created for RDC python binding:
* The rdc_bootstrap.py is a python ctypes wrapper for the librdc_boostrap.so
* The RdcUtil.py defines common utilities for RDC to manage group/fieldgroup
* The RdcReader.py is a class to simplify the usage of the RDC:
  - The user only needs to specify which fields he wants to monitoring.
     RdcReader will create groups and fieldgroups, watch the fields, and fetch the fields.
  - The RdcReader can support embedded and standalone mode.
  - The standalone can be with authentication and without authentication.
  - In standalone mode, the RdcReader can automatically reconnect to the rdcd when the connection is lost.
  - When rdcd is restarted, the previously created group and fieldgroup may lose.
    The RdcReader can re-create them and watch the fields after reconnect.
  - If the client is restarted, RdcReader can detect the groups and fieldgroups
    created before and avoid re-create them.
  - The user can pass the unit converter if he does not want to use RDC default unit.

Change-Id: I109ec86012f37162eb13f7d3e921115b7dd82369
2020-08-17 14:09:37 -05:00
Cole Nelson d9408697d8 rdc: homogenize package references to AMD
Change-Id: I136afeedcbb4df87b37ca52d7faa6f91321b41f9
Signed-off-by: Cole Nelson <cole.nelson@amd.com>
2020-08-17 14:09:37 -05:00
Chris Freehill 4008dd8eac Add .x86_64 and _amd64 suffixes to .rpm and .debs
Also:
* update README documentation
* correct postinst scripts for deb and rpm
* add lib64/ to link_directories (needed for CentOS and others)
* remove a redundant "rdc" from the package names
* rearrange the package names to conform to convention
For example:
rdc-server_1.0.0.0.local-build-0-c3187fb-dirty_amd64.deb
rdc-server_1.0.0.0.local-build-0-c3187fb-dirty.x86_64.rpm

* fix issues that result from having, in essence, 2 different
  install prefixes, 1 for the client and 1 for the server.

Change-Id: I88f0e1b8b72df2793c35ed71534afd91142da012
2020-08-17 14:09:37 -05:00
Chris Freehill c35b0b8ec1 Add rdci to package bin directory
Also:
* add to the CI bin directory
* when making a new manual PDF, don't overwrite the old one;
  instead, make a copy that can be used to manually replace
  the existing one, if desired.

Change-Id: I9384e3627835a9c9983a55c23417a279a7b4d0f4
2020-08-17 14:09:37 -05:00
Chris Freehill 3793e8df27 Generate RDC docs on make and put into package
DOxygen docs from rdc.h will be generated on build and a
new pdf file will be created in the docs folder. Note
that the generated pdf should should only be updated in
the git repo when certain files are modified:

* rdc.h Doxygen comments are updated (or any future files that
are processed for Doxygen comments)

* the Doxygen config file is updated

Change-Id: I3084520f5b02aaa8e4973f9055d8679d6788b0ef
2020-08-17 14:07:25 -05:00
Chris Freehill 76162057a1 Fix some docs issues
Change-Id: I961a34a90ead7e7559f778cae3bef7ec41689a93
2020-08-17 14:07:25 -05:00
Chris Freehill b6da10f1f4 Separate client/server packages, build_ scripts mods
Change-Id: Ic553be523e7c6ae8ac930fa2126add45f33645b7
2020-08-17 14:07:25 -05:00
Chris Freehill 1b58033183 Make GPRC and protobuf external components to RDC
Pass in GRPC root (or use default location) for RDC to use
when building RDC components.

Change-Id: I89db2ac2be27ab6449c817d210a94c11fef965fd
2020-08-17 14:07:25 -05:00
Chris Freehill 47fdfa4c7e Add support for gRPC authenticated communications
Also, make a few namespace corrections and some minor refactoring.

Change-Id: Iedcaf6b43cb7576bc11dfefe980abd190c838831
2020-08-17 14:07:25 -05:00
Bill(Shuzhou) Liu 020f6939f7 SWDEV-209060 - Create the Skeleton RDC CLI and daemon
Create the skeleton implementation of rdc_client.so and rdci. Modify current rdcd to
integrate the RDC API service:

rdc.proto is changed to add a new RdcAPI service which defined the interfaces for the RDC API.

RdcStandaloneHandler.cpp is added to send the request using gRPC to the rdcd. It is built into
the rdc_client.so

rdci.cc, RdciDisCoverySubSystem.cc and RdciSubSystem.cc are added to implement skeleton rdci.
Currently, the discovery subsystem is supported.

rdc_api_service.cc is added to the server as a skeleton to implement the RdcAPI service. Currently,
only discovery API is implemented. Note: we disabled the rdc_rsmi_service, which will be removed
in the future. The original rdc_client.so is renamed to rdc_client_smi.so which should also be
removed in the future.

Add the instruction how to run the rdcd and rdci in the build folder in the README.md.

Change-Id: Id232f9f83787e5812d4a295dc8cf0daa7728b06c
2020-08-17 14:07:25 -05:00
Chris Freehill 5cc498c6aa Make rdcd run as user "rdc"
The rdc account will be created on installation if it does
not already exist. It will be a system account with no
home directory.

rdcd will be started as a systemd service, but change to
user "rdc". The rdc user will drop all priviliges except
CAP_DAC_OVERRIDE, permitted. This means the default mode
will have no special privileges, but have the ability to
gain write access (e.g., to sysfs) when needed.

rdc tests were being inadvertantly added to the
installation. This was adversely impacting the new
functionality, so it was corrected in this commit.

Also included are a few small formatting changes.

Change-Id: I9c6bb132fee28119fd3960594dfb97bd2e7b282a
2020-08-17 14:07:25 -05:00
Chris Freehill 4729c47866 Add read fan values and associated tests
Change-Id: I89322e93d5f3110adace15e5a576f00d4934be79
2020-08-17 14:07:25 -05:00
Chris Freehill ca4344f5fa Add Google test based tests.
Initial testing include an "id test", which really just a
template test at this point, and a temperature sensor test.

The google test code is included in this commit. It will
eventually be taken out and replaced with a pull from a google
external repo.

Change-Id: I591818a9c169f4654fc8d8f17cf648f227d72545
2020-08-17 14:06:56 -05:00
Chris Freehill dc6f6f3e9a Break srvs. into rsmi & admin srvs. Add VerifyConnection api.
Change-Id: I67567264c37e31f3409062a14e56eba4801cd944
2020-01-09 20:02:33 -06:00
Chris Freehill 5898345d17 Initial RDC commit
Includes server, client and example targets.

Change-Id: I30596fb0453af71d49b8390a8468a6d073200836
2020-01-09 17:57:29 -06:00