RDK Documentation (Open Sourced RDK Components)
Device_MoCA_Interface_QoS_FlowStats.h
Go to the documentation of this file.
1 /*
2  * If not stated otherwise in this file or this component's Licenses.txt file the
3  * following copyright and licenses apply:
4  *
5  * Copyright 2016 RDK Management
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18 */
19 
20 /**
21  * @file Device_MoCA_Interface_QoS_FlowStats.h
22  *
23  * TR-069 Device.Moca.Interface.QoS.FlowStats object Public API.
24  */
25 
26 /**
27  * @defgroup TR69_HOSTIF_MOCA_INTERFACE_QOS_FLOWSTATS TR-069 Object (Device.MoCA.Interface.{i}.QoS.FlowStats) Public APIs
28  * The flow statistics table provides information on the MoCA parameterized QoS flows this interface has
29  * allocated onto the MoCA network.
30  *
31  * At most one entry in this table can exist with a given value for FlowID.
32  * @ingroup TR69_HOSTIF_MOCA
33  */
34 
35 
36 
37 
38 /**
39 * @defgroup tr69hostif
40 * @{
41 * @defgroup hostif
42 * @{
43 **/
44 
45 
46 #ifndef HOSTIF_MOCA_INTERFACE_QOS_FLOWSTATS_H_
47 #define HOSTIF_MOCA_INTERFACE_QOS_FLOWSTATS_H_
48 
49 #include "hostIf_main.h"
50 #include "hostIf_tr69ReqHandler.h"
51 #include "hostIf_utils.h"
52 #include "Device_MoCA_Interface.h"
53 
54 
55 /*****************************************************************************
56  * TR069-SPECIFIC INCLUDE FILES
57  *****************************************************************************/
58 
59 /** @defgroup TR_069_DEVICE_MOCA_INTERFACE_QOS_FLOWSTATS_API TR-069 Device.Moca.Interface.QoS.FlowStats object API.
60  * @ingroup TR_069_DEVICE_MOCA_INTERFACE_QOS_API
61  *
62  * The Device.Moca.Interface.QoS.FlowStats object is a flow statistics table which
63  * provides information on the MoCA parameterized QoS flows this interface has allocated
64  * onto the MoCA network.
65  *
66  * @note At most one entry in this table can exist with a given value for FlowID.
67  *
68  */
69 
70 /** @addtogroup TR_069_DEVICE_MOCA_INTERFACE_QOS_FLOWSTATS_GETTER_API TR-069 Device.Moca.Interface.QoS.FlowStats Getter API.
71  * @ingroup TR_069_DEVICE_MOCA_INTERFACE_QOS_FLOWSTATS_API
72  *
73  * \section dev_moca_if_qos_flowstats_getter TR-069 Device.MoCA.Interface.QoS.FlowStats object Getter API
74  *
75  * This is the getter group of API for the <b>Device.MoCA.Interface.{i}.QoS.FlowStats.{j}</b> object.
76  *
77  * The interface for all functions is identical and is described here.
78  *
79  * @param[in] *name This is the complete path name of the parameter extracted from
80  * soap message, e.g. ::get_Device_MoCA_Interface_QoS_FlowStats_FlowID.
81  * In this case, the path is "Device.MoCA.Interface.{i}.QoS.FlowStats.{j}.FlowID".
82  * @param[in] *type Data type of parameter defined for TR-069. This is same as the
83  * data type used in the Xi3 data-model.xml file.
84  * (see parameter.h)
85  * @param[out] *value This is the value of the parameter requested by the ACS.
86  * (see paramaccess.h)
87  *
88  * @return The status of the operation.
89  * @retval OK If parameter requested was successfully fetched. (Same as <b>NO_ERROR</b>).
90  * @retval NO_ERROR If parameter requested was successfully fetched. (Same as <b>OK</b>).
91  * @retval DIAG_ERROR Diagnostic error.
92  * @retval ERR_??? Appropriate error value otherwise (see dimark_globals.h).
93  *
94  * @todo Clarify description of DIAG_ERROR.
95  *
96  * @{
97  */
99 
100  static class MoCAInterfaceQoSFlowStats *Instance;
103 
104 public:
105  static class MoCAInterfaceQoSFlowStats *getInstance();
106 
107  /**
108  * @ingroup TR69_HOSTIF_MOCA_INTERFACE_QOS_FLOWSTATS
109  * @{
110  */
111 
112  /**
113  * @brief Get the flow ID used to identify a flow in the network.
114  *
115  * This parameter is based on mocaIfFlowID from [MOCA11-MIB].
116  *
117  * This function provides the output as a numeric value available
118  * in Device.MoCA.Interface.{i}.QoS.FlowStats.FlowID parameter.
119  *
120  * @param[out] stMsgData TR-069 Host interface message request.
121  * @param[in] entryNum Entry Number.
122  * @param[out] pChanged pChange set to not NULL if the object value got changed.
123  *
124  * @return Returns 0 on success, otherwise will return the appropriate error code.
125  */
126  int get_FlowID(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
127 
128  /**
129  * @brief Get the Destination Address (DA) for the packets in this flow.
130  *
131  * This function provides the output as a string value available
132  * in Device.MoCA.Interface.{i}.QoS.FlowStats.PacketDA parameter.
133  *
134  * @param[out] stMsgData TR-069 Host interface message request.
135  * @param[in] entryNum Entry Number.
136  * @param[out] pChanged pChange set to not NULL if the object value got changed.
137  *
138  * @return Returns 0 on success, otherwise will return the appropriate error code.
139  */
140  int get_PacketDA(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
141 
142  /**
143  * @brief Get the maximum required rate in Kbps.
144  *
145  * This function provides the output as a numeric value available
146  * in Device.MoCA.Interface.{i}.QoS.FlowStats.MaxRate parameter.
147  *
148  * @param[out] stMsgData TR-069 Host interface message request.
149  * @param[in] entryNum Entry Number.
150  * @param[out] pChanged pChange set to not NULL if the object value got changed.
151  *
152  * @return Returns 0 on success, otherwise will return the appropriate error code.
153  */
154  int get_MaxRate(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
155 
156  /**
157  * @brief Get Maximum burst size of MoCA interface.
158  *
159  * This function provides the output as a numeric value available
160  * in Device.MoCA.Interface.{i}.QoS.FlowStats.MaxBurstSize parameter.
161  *
162  * @param[out] stMsgData TR-069 Host interface message request.
163  * @param[in] entryNum Entry Number.
164  * @param[out] pChanged pChange set to not NULL if the object value got changed.
165  *
166  * @return Returns 0 on success, otherwise will return the appropriate error code.
167  */
168  int get_MaxBurstSize(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
169 
170  /**
171  * @brief Get the flow lease time (expressed in seconds). A LeaseTime of 0 means unlimited lease time.
172  *
173  * This function provides the output as a numeric value available
174  * in Device.MoCA.Interface.{i}.QoS.FlowStats.LeaseTime parameter.
175  *
176  * @param[out] stMsgData TR-069 Host interface message request.
177  * @param[in] entryNum Entry Number.
178  * @param[out] pChanged pChange set to not NULL if the object value got changed.
179  *
180  * @return Returns 0 on success, otherwise will return the appropriate error code.
181  */
182  int get_LeaseTime(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
183 
184  /**
185  * @brief Get the Flow lease time remaining (expressed in seconds).
186  *
187  * If LeaseTime is 0 then a LeaseTimeLeft of 0 means unlimited lease time; otherwise, a LeaseTimeLeft of 0 means expired.
188  *
189  * This parameter is based on mocaIfLeaseTimeLeft from [MOCA11-MIB].
190  *
191  * This function provides the output as a numeric value available
192  * in Device.MoCA.Interface.{i}.QoS.FlowStats.LeaseTimeLeft parameter.
193  *
194  * @param[out] stMsgData TR-069 Host interface message request.
195  * @param[in] entryNum Entry Number.
196  * @param[out] pChanged pChange set to not NULL if the object value got changed.
197  *
198  * @return Returns 0 on success, otherwise will return the appropriate error code.
199  */
200  int get_LeaseTimeLeft(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
201 
202  /**
203  * @brief Get the number of packets transmitted for this flow.
204  *
205  * This parameter is based on mocaIfTxPacketsFlow from [MOCA11-MIB].
206  *
207  * This function provides the output as a numeric value available
208  * in Device.MoCA.Interface.{i}.QoS.FlowStats.FlowPackets parameter.
209  *
210  * @param[out] stMsgData TR-069 Host interface message request.
211  * @param[in] entryNum Entry Number.
212  * @param[out] pChanged pChange set to not NULL if the object value got changed.
213  *
214  * @return Returns 0 on success, otherwise will return the appropriate error code.
215  */
216  int get_FlowPackets(HOSTIF_MsgData_t *stMsgData ,unsigned int entryNum,bool *pChanged = NULL);
217 
218  /* End of TR_069_DEVICE_MOCA_INTERFACE_QOS_FLOWSTATS_GETTER_API doxygen group */
219  /**
220  * @}
221  */
222 };
223 
224 #endif /* HOSTIF_MOCA_INTERFACE_QOS_FLOWSTATS_H_ */
225 
226 
227 /** @} */
228 /** @} */
MoCAInterfaceQoSFlowStats::get_MaxRate
int get_MaxRate(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get the maximum required rate in Kbps.
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:76
MoCAInterfaceQoSFlowStats::get_FlowID
int get_FlowID(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get the flow ID used to identify a flow in the network.
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:59
_HostIf_MsgData_t
Definition: hostIf_tr69ReqHandler.h:170
hostIf_main.h
hostIf_main API.
MoCAInterfaceQoSFlowStats::get_FlowPackets
int get_FlowPackets(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get the number of packets transmitted for this flow.
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:105
Device_MoCA_Interface.h
MoCAInterfaceQoSFlowStats::get_LeaseTimeLeft
int get_LeaseTimeLeft(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get the Flow lease time remaining (expressed in seconds).
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:98
MoCAInterfaceQoSFlowStats::get_LeaseTime
int get_LeaseTime(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get the flow lease time (expressed in seconds). A LeaseTime of 0 means unlimited lease time.
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:91
MoCAInterfaceQoSFlowStats
Definition: Device_MoCA_Interface_QoS_FlowStats.h:98
MoCAInterfaceQoSFlowStats::get_MaxBurstSize
int get_MaxBurstSize(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get Maximum burst size of MoCA interface.
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:84
MoCAInterfaceQoSFlowStats::get_PacketDA
int get_PacketDA(HOSTIF_MsgData_t *stMsgData, unsigned int entryNum, bool *pChanged=NULL)
Get the Destination Address (DA) for the packets in this flow.
Definition: Device_MoCA_Interface_QoS_FlowStats.cpp:67