TR181-XPON  1.4.0
TR-181 PON manager.
data_model.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** SPDX-License-Identifier: BSD-2-Clause-Patent
4 **
5 ** SPDX-FileCopyrightText: Copyright (c) 2022 SoftAtHome
6 **
7 ** Redistribution and use in source and binary forms, with or
8 ** without modification, are permitted provided that the following
9 ** conditions are met:
10 **
11 ** 1. Redistributions of source code must retain the above copyright
12 ** notice, this list of conditions and the following disclaimer.
13 **
14 ** 2. Redistributions in binary form must reproduce the above
15 ** copyright notice, this list of conditions and the following
16 ** disclaimer in the documentation and/or other materials provided
17 ** with the distribution.
18 **
19 ** Subject to the terms and conditions of this license, each
20 ** copyright holder and contributor hereby grants to those receiving
21 ** rights under this license a perpetual, worldwide, non-exclusive,
22 ** no-charge, royalty-free, irrevocable (except for failure to
23 ** satisfy the conditions of this license) patent license to make,
24 ** have made, use, offer to sell, sell, import, and otherwise
25 ** transfer this software, where such license applies only to those
26 ** patent claims, already acquired or hereafter acquired, licensable
27 ** by such copyright holder or contributor that are necessarily
28 ** infringed by:
29 **
30 ** (a) their Contribution(s) (the licensed copyrights of copyright
31 ** holders and non-copyrightable additions of contributors, in
32 ** source or binary form) alone; or
33 **
34 ** (b) combination of their Contribution(s) with the work of
35 ** authorship to which such Contribution(s) was added by such
36 ** copyright holder or contributor, if, at the time the Contribution
37 ** is added, such addition causes such combination to be necessarily
38 ** infringed. The patent license shall not apply to any other
39 ** combinations which include the Contribution.
40 **
41 ** Except as expressly stated above, no rights or licenses from any
42 ** copyright holder or contributor is granted under this license,
43 ** whether expressly, by implication, estoppel or otherwise.
44 **
45 ** DISCLAIMER
46 **
47 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
48 ** CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
49 ** INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
50 ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
51 ** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
52 ** CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
53 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
54 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
55 ** USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
56 ** AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57 ** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
58 ** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
59 ** POSSIBILITY OF SUCH DAMAGE.
60 **
61 ****************************************************************************/
62 
63 #ifndef __data_model_h__
64 #define __data_model_h__
65 
72 /* System headers */
73 #include <stdbool.h>
74 #include <stddef.h> /* size_t */
75 
76 /* Other libraries' headers */
77 #include <amxc/amxc_variant.h> /* amxc_var_t */
78 
79 /* Own headers */
80 #include "pon_mode.h" /* pon_mode_t */
81 
82 void dm_set_vendor_module(const char* name);
83 void dm_set_module_error(void);
84 
85 int dm_add_instance(const amxc_var_t* const args);
86 int dm_remove_instance(const amxc_var_t* const args);
87 int dm_change_object(const amxc_var_t* const args);
88 int dm_add_or_change_instance_impl(const amxc_var_t* const args);
89 int dm_omci_reset_mib(const amxc_var_t* const args);
90 int dm_set_xpon_parameter_impl(const amxc_var_t* const args);
91 
92 bool dm_does_instance_exist(const char* path, uint32_t index);
93 uint32_t dm_get_nr_of_ethernet_uni_instances(const char* const onu_path);
94 uint32_t dm_get_nr_of_ani_instances(const char* const onu_path);
95 
96 bool dm_get_param(const char* path, const char* name, amxc_var_t* resp);
97 bool dm_is_hex_password(const char* const ani_path, bool* is_hex);
98 bool dm_get_ani_pon_mode(const char* const ani_path, pon_mode_t* pon_mode);
99 
100 #endif
void dm_set_module_error(void)
Definition: data_model.c:192
bool dm_is_hex_password(const char *const ani_path, bool *is_hex)
Definition: data_model.c:1236
uint32_t dm_get_nr_of_ani_instances(const char *const onu_path)
Definition: data_model.c:1198
int dm_omci_reset_mib(const amxc_var_t *const args)
Definition: data_model.c:1049
int dm_change_object(const amxc_var_t *const args)
Definition: data_model.c:821
int dm_add_or_change_instance_impl(const amxc_var_t *const args)
Definition: data_model.c:922
int dm_remove_instance(const amxc_var_t *const args)
Definition: data_model.c:788
int dm_set_xpon_parameter_impl(const amxc_var_t *const args)
Definition: data_model.c:1106
int dm_add_instance(const amxc_var_t *const args)
Definition: data_model.c:762
bool dm_does_instance_exist(const char *path, uint32_t index)
Definition: data_model.c:1141
uint32_t dm_get_nr_of_ethernet_uni_instances(const char *const onu_path)
Definition: data_model.c:1187
bool dm_get_ani_pon_mode(const char *const ani_path, pon_mode_t *pon_mode)
Definition: data_model.c:1280
bool dm_get_param(const char *path, const char *name, amxc_var_t *resp)
Definition: data_model.c:1204
void dm_set_vendor_module(const char *name)
Definition: data_model.c:178
enum _pon_mode pon_mode_t