147 Commits

Author SHA1 Message Date
Wataru Ishida
17edfdef4d taish: always link to libmetatai library
The TAI library that is used to build the taish_server is using the TAI
library framework. TAI libraries that uses the TAI library framework
includes symbols of libmetatai.so. Combined with the ld's default
behavior (--as-needed), the libmetatai.so was not linked to
taish_server. However, taish_server must work with the TAI libraries
that don't use the TAI library framework and that don't include the
symbols of libmetatai.so. This commit adds --no-as-needed flag to always
link libmetatai library to taish_server.

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-04-19 16:06:25 +09:00
Wataru Ishida
0aea95617d Revert "meta: add tai_metadata_get_attr_sorted_by_id_name()"
This reverts commit 1955bb551d.

The commit breaks existing TAI libraries

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-04-18 19:03:14 +09:00
Wataru Ishida
1955bb551d meta: add tai_metadata_get_attr_sorted_by_id_name()
and tai_metadata_get_attr_sorted_by_id_name_count()

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-04-18 10:11:32 +09:00
Wataru Ishida
a62b13ef64 taish: fix get_hostif() and get_netif()
the index in the objs list doesn't necessarily match with the index
of the object

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-03-16 01:21:06 +09:00
Wataru Ishida
009635ba5f taish: fix interactive mode
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-28 11:02:28 +09:00
Wataru Ishida
d9e58cd11f taish: fix remove command
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-22 15:53:47 +09:00
Wataru Ishida
a6b842762d framework: remove unnecessary dynamic link to the meta library
meta library is statically linked

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-18 10:32:24 +09:00
Wataru Ishida
077ba2727d framework: let user decide the optimization level
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-18 10:32:24 +09:00
Wataru Ishida
e1af71517a framework: fix list of sources and headers
include meta library sources to the library to support meta API
with custom attributes

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-17 12:14:19 +09:00
Wataru Ishida
16397c4910 taish/client: fix close()
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-16 17:50:35 +09:00
Wataru Ishida
d474c52d9d framework: include meta library object code to support meta APIs
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-16 17:50:35 +09:00
Wataru Ishida
fc632a42f7 improve build
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-14 14:24:45 +09:00
Wataru Ishida
58cca5d17a meta-generator: use libclang package to simplify installation
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-14 14:24:45 +09:00
Wataru Ishida
b1707a9905 improve build
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-12 23:43:18 +09:00
Wataru Ishida
e3e3a0fc4c use -Wall -Werror for build
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-12 23:43:18 +09:00
Wataru Ishida
dd287856b8 taish: return hostif/netif in the order of index
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-12 12:52:24 +09:00
Wataru Ishida
9e1a9f6555 framework: don't call notification callback when attrs.size() == 0
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-10 19:59:16 +09:00
Wataru Ishida
352814de51 taish: use grpcio instead of grpclib
grpcio is faster and the current version supports asyncio.

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-09 14:02:00 +09:00
Wataru Ishida
aff8455b6a meta: package metadata generator instead of raw script
to enable easy use for other projects

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-01 14:30:13 +09:00
Wataru Ishida
7a0671ec40 framework: don't queue the next state if already exists
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-23 20:59:20 +09:00
Wataru Ishida
94ee226c6c taish: support setting empty list via taish cli
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-19 20:22:31 +09:00
Wataru Ishida
cb939abd85 taish: format code by black
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-19 20:22:31 +09:00
Wataru Ishida
ad7e2befee taish: handle exception in SetAttribute()
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-19 18:46:43 +09:00
Wataru Ishida
7246caa3d1 meta: support deserializing empty list
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-19 18:46:43 +09:00
Wataru Ishida
b9ae629581 taish: fix another taish list command regression
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-09 10:15:11 +09:00
Wataru Ishida
5dff94a715 taish: fix taish list command regression
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-07 18:17:22 +09:00
Wataru Ishida
42ab521d6b taish: support getting/setting multiple attributes at once
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-06 14:57:14 +09:00
Wataru Ishida
bc785cd223 lib: add tests
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-05 00:18:47 +09:00
Wataru Ishida
462b6971a1 framework: fix next-state overwriting
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-12-01 22:12:13 +09:00
Wataru Ishida
896b91e80a taish: use a separate mutex for API serialization
a bug introduced by 3448aca2a1

m_mtx for API serialization
m_notifiers_mtx to protect m_notifiers

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-11-08 13:55:44 +09:00
Wataru Ishida
3448aca2a1 taish: serialize TAI API calls
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-11-01 07:43:57 +09:00
Wataru Ishida
07626499ea taish: handle SIGTERM
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-09-15 15:59:19 +09:00
Wataru Ishida
9e0effa95e meta: support adding custom enum values to TAI attributes
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-09-13 16:19:46 +09:00
Wataru Ishida
6442c0b29c taish: fix bug of python client library
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-12 01:44:39 +09:00
Wataru Ishida
c2656400c3 taish: fix bug when calling a method with kwargs
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 10:45:44 +09:00
Wataru Ishida
ed79f0ccac framework/examples/basic: show how to add capability support
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
b0fdd9ce8c taish: add capability support
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
96fe7cc006 framework: initial support of capability API
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
ec790253dc lib: capability
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
7c83724333 framework: return immediately when attr_count is 0
suppress misleading debug messages

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
4d51cd3395 framework: remove unused function
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
13c18a9bd6 framework/example/basic: suppress complile warning
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
Wataru Ishida
074fb47b15 taish: call tai_api_uninitialize() when exiting
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-07-28 12:07:54 +09:00
Wataru Ishida
06e7774ff3 framework: make the destructor of Platform virtual
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-07-28 12:07:54 +09:00
Wataru Ishida
15437e0eed taish: make getopt work in env where char is unsigned.
https://stackoverflow.com/questions/17070958/c-why-does-getopt-return-255-on-linux

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-07-19 11:19:23 +09:00
Wataru Ishida
29de11eb36 taish: add module-oid field to hostif and netif
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-05-26 10:05:11 +09:00
Wataru Ishida
22e3bcd123 framework: add direct_set/get for default_setter/getter
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-04-26 15:44:28 +09:00
Wataru Ishida
94b079c541 taish: use meta APIs when loading configuration
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-04-26 15:44:28 +09:00
Wataru Ishida
7595139b74 add meta APIs to TAI
Unlike SAI, TAI needs to handle different kinds of devices
simultaneously. In order to support this, we have tai-mux library
which multiplexes multiple TAI libraries and provide a single TAI interface
to upper application.

However, there was no multiplex or aggregation layer for TAI *metadata*.
TAI metadata is used to know each TAI attributes characteristic and provides
utility functionality like string serialization.

Because of this lack of multiplex layer, application developers have to
create a TAI meta library by manually aggregating all TAI attributes of
TAI libraries which are planned to be used.

This is tedious, error prone works and makes it difficult to support
new TAI library dynamically.

In order to solve this issue, this commits adds meta APIs to TAI APIs.
By doing so, TAI *metadata* can be multiplexed by tai-mux just like
other APIs.

This commit also enhances TAI library framework to automatically support
the new meta APIs.

TAI library which is based on the framework will get the meta API
functionally automatically by recompiling it.

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-04-26 15:44:28 +09:00
Wataru Ishida
e88a2d99cd taish: fix build
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-02-22 18:09:24 -08:00