62 Commits

Author SHA1 Message Date
Wataru Ishida
b3a2292297 meta: fix Makefile
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
fff154275d meta: fix build
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-02-16 17:50:35 +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
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
b19b277849 meta: support objlist in tai_deserialize_attribute_value()
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-30 17:24:28 +09:00
Wataru Ishida
45e9552079 meta: support deserializing object list
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-29 19:05:51 +09:00
Wataru Ishida
cb67b0e7d2 meta: fix u32list deserialization
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-21 13:57:52 +09:00
Wataru Ishida
e0f869e109 meta: s64list and u64list support
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-19 23:56:53 +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
c097114f36 meta: support deserializing object map list attribute
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-05 00:18:47 +09:00
Wataru Ishida
c29496dce6 meta: fix wrong usage of cJSON
need to call cJSON_Delete after use

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2022-01-05 00:18:47 +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
7b5e440eb0 meta: add tai_metadata_[le|ge]_attr_value for attr comparison
Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2021-08-11 00:50:40 +09:00
kinmantam
5762cb2942 Add tai_u64_list_t and tai_s64_list_t types (#127)
* Add files via upload

* Add files via upload

* Delete taitypes.h

* Add files via upload

* Add files via upload
2021-07-13 11:10: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
3052a52a92 meta: fix count calculation in list deserialization
stop using the hard-coded DEFAULT_LIST_SIZE and actually calculate how many
items the buffer has.

Signed-off-by: Wataru Ishida <wataru.ishid@gmail.com>
2020-12-05 21:15:24 -08:00
Wataru Ishida
d7dd6a4420 meta: fix bug of objmaplist and attrlist allocation
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-13 17:32:41 -08:00
Wataru Ishida
f044c3f4ca allocate custom attribute range for mux
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-09 10:04:24 -08:00
Wataru Ishida
bf7c46a977 meta: set non-zero default size when size == 0
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-08 16:34:43 -08:00
Wataru Ishida
8415e78723 meta: fix mem leak and compiler warning
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-06 10:56:59 -08:00
Wataru Ishida
f7795bc964 meta: add tai_metadata_clear_attr_value to clear attribute value
tai_metadata_clear_attr_value clears attribute value without touching
allocated area

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-03 09:06:15 -08:00
Wataru Ishida
226c545d91 meta: support json option in tai_deserialize_charlist
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-03 09:06:15 -08:00
Wataru Ishida
55bc7196e4 meta: fix charlist serialization
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-03 09:06:15 -08:00
Wataru Ishida
d2467ededf meta: fix bug of tai_deserialize_charlist
tai_char_list_t.list doesn't need to be null terminated

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2020-01-03 09:06:15 -08:00
Wataru Ishida
7dd733d9fe meta: include custom attribute ids in attribute enum
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-12-22 00:52:09 -08:00
Wataru Ishida
e301b0fd80 meta: support adding custom headers
$ python main.py ../inc/tai.h custom_module.h custom_netif.h

see sample directory for an example

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-12-20 15:40:00 -08:00
Wataru Ishida
bd1225c035 build: refactor how to build TAI components
created a top-level Dockerfile which can be used to build everything in
this repo.

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-12-19 13:01:38 -08:00
Wataru Ishida
ae92006e76 meta: fix enum list serialization
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-12-13 23:31:30 -08:00
Wataru Ishida
3027368cad meta: fix bug of tai_metadata_deepequal_attr_value()
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-12-04 11:57:00 -08:00
Wataru Ishida
a5f189d49e meta: add tai_metadata_deepequal_attr_value()
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-09-19 17:29:36 -07:00
Wataru Ishida
eb54d3eb1f hostif: add clear APIs
clear API can be used to clear stats attribute.
This API can only be used against an attribute with the clearable flag.

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-09-19 17:29:36 -07:00
Wataru Ishida
3339087397 meta: add status/value-type serilization functions
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-09-19 17:29:36 -07:00
Wataru Ishida
91f9c3490a meta: use scientific notion for small/large float value
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-05 12:27:28 -07:00
Wataru Ishida
614e38f815 meta: fix to return correct error code TAI_STATUS_BUFFER_OVERFLOW
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-04 21:07:53 -07:00
Wataru Ishida
8e1d0a33dd meta: support deserialing list type attributes in json format
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-04 21:07:53 -07:00
Wataru Ishida
f5eeadeb74 Fix wrong description about license in each files and add NOTICE file
TAI is licensed under BSD 3-Clause License. Fix the description in each
files which were taken from SAI.
Also mention about SAI license (Apache License, Version 2.0).

related: #4

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-04 16:51:51 -07:00
Wataru Ishida
1d7eca8f59 meta: fill isoidattribute in metadata
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-03 11:59:55 -07:00
Wataru Ishida
351ab39e28 meta: fix objmaplist alloc/free
As in attrlist attribute, objmaplist also needs _alloced field to
keep track of the number of allocated tai_object_map_t

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-03 11:04:15 -07:00
Wataru Ishida
654c7461ca meta: support serializing object map list
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-03 11:04:15 -07:00
Wataru Ishida
347fc472db netif: add notification attribute
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-03 11:04:00 -07:00
Wataru Ishida
669a2d225c meta: support serializing pointer
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-06-03 11:04:00 -07:00
Wataru Ishida
bcf5bd971e meta: update Dockerfile
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-05-20 02:59:17 -07:00
Wataru Ishida
d342afa982 meta: support alloc/free/deepcopy attrlist attribute
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-05-20 02:59:17 -07:00
Wataru Ishida
1c760db99b meta: support deserialize list attributes
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-05-20 02:59:17 -07:00
Wataru Ishida
3a6d725f4b meta: add buffer size to serialization methods to detect overflow
use snprintf semantics instead of sprintf

Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-05-20 02:59:17 -07:00
Wataru Ishida
1399c401e1 meta: support building under proxy environment
Signed-off-by: Wataru Ishida <ishida@nel-america.com>
2019-05-20 02:59:17 -07:00