RDK Documentation (Open Sourced RDK Components)
Device_IP_Interface.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  * @file Device_IP_Interface.h
21  * @brief The header file provides TR069 device IP interface information APIs.
22  */
23 
24 /**
25  * @defgroup TR69_HOSTIF_DEVICE_INTERFACE_IP TR-069 Object (Device.IP.Interface)
26  * IP interface table is a stackable interface object . This table models the layer 3 IP interface.
27  * Each IP interface can be attached to the IPv4 and/or IPv6 stack. The interfaces IP addresses
28  * and prefixes are listed in the IPv4Address, IPv6Address and IPv6Prefix tables.
29  *
30  * @note Note that support for manipulating 'Loopback' interfaces is OPTIONAL, so the implementation
31  * MAY choose not to create or allow the ACS to create the interface instances of type 'Loopback'.
32  *
33  * - When the ACS administratively disables the interface i.e. sets 'Enable' to false, the interface
34  * automatically-assigned IP addresses and prefixes MAY be retained.
35  * - When the ACS administratively enables the interface, i.e. sets 'Enable' to true, these IP
36  * addresses and prefixes MUST be refreshed.
37  * It's up to the implementation to decide exactly what this means: it SHOULD take all reasonable
38  * steps to refresh everything but if it is unable, for example, to refresh a prefix that still
39  * has a significant lifetime, it might well choose to retain rather than discard it.
40  *
41  * At most one entry in this table regardless of whether or not it is enabled can exist with a
42  * given value for Alias, or with a given value for Name.
43  * On creation of a new table entry, the CPE MUST choose initial values for Alias and Name
44  * such that the new entry does not conflict with any existing entries.
45  * @ingroup TR69_HOSTIF_DEVICE_IP
46  *
47  * @defgroup TR69_HOSTIF_DEVICE_INTERFACE_IP_API TR-069 Object (Device.IP.Interface.{i}) Public APIs
48  * Describe the details about TR-069 Device IP Interface APIs specifications.
49  * @ingroup TR69_HOSTIF_DEVICE_INTERFACE_IP
50  *
51  * @defgroup TR69_HOSTIF_DEVICE_INTERFACE_IP_CLASSES TR-069 Object (Device.IP.Interface.{i}) Public Classes
52  * Describe the details about classes used in TR069 Device IP Interface.
53  * @ingroup TR69_HOSTIF_DEVICE_INTERFACE_IP
54  *
55  * @defgroup TR69_HOSTIF_DEVICE_INTERFACE_IP_DSSTRUCT TR-069 Object (Device.IP.Interface.{i}) Public DataStructure
56  * Describe the details about data structure used in TR069 Device IP Interface.
57  * @ingroup TR69_HOSTIF_DEVICE_INTERFACE_IP
58  */
59 
60 
61 
62 
63 /**
64 * @defgroup tr69hostif
65 * @{
66 * @defgroup hostif
67 * @{
68 **/
69 
70 
71 #ifndef DEVICE_IP_INTERFACE_H_
72 #define DEVICE_IP_INTERFACE_H_
73 
74 /*****************************************************************************
75  * TR069-SPECIFIC INCLUDE FILES
76  *****************************************************************************/
77 #include "hostIf_main.h"
78 #include "hostIf_tr69ReqHandler.h"
79 #include "hostIf_utils.h"
80 #include "hostIf_updateHandler.h"
81 #include <net/if.h>
82 
83 #define IP_STATUS_LENGTH 24
84 #define ALIAS_LENGTH 70
85 #define NAME_LENGTH 70
86 #define LL_LENGTH 1024
87 #define ROUTER_LENGTH 256
88 #define TYPE_LENGTH 24
89 
90 /**
91  * @addtogroup TR69_HOSTIF_DEVICE_INTERFACE_IP_DSSTRUCT
92  * @{
93  */
94 /**
95  * @brief It contains the members variables of the Device_IP_Interface structure.
96  */
97 typedef struct Device_IP_Interface
98 {
99  bool enable;
100  bool iPv4Enable;
101  bool iPv6Enable;
102  bool uLAEnable;
103  char status[IP_STATUS_LENGTH];
104  char alias[ALIAS_LENGTH];
105  char name[NAME_LENGTH];
106  unsigned int lastChange;
107  char lowerLayers[LL_LENGTH];
108  char router[ROUTER_LENGTH];
109  bool reset;
110  unsigned int maxMTUSize;
111  char type[TYPE_LENGTH];
112  bool loopback;
113  unsigned int iPv4AddressNumberOfEntries;
114 #ifdef IPV6_SUPPORT
115  unsigned int iPv6AddressNumberOfEntries;
116  unsigned int iPv6PrefixNumberOfEntries;
117 #endif
118  bool autoIPEnable;
119 } IPInterface;
120 
121 /**
122  * @enum EDeviceIPInterfaceMembers
123  * @brief It contains the members variables of the EDeviceIPInterfaceMembers enum.
124  */
126 {
127  eIPEnable=0,
128  eIPIPv4Enable,
129  eIPIPv6Enable,
130  eIPULAEnable,
131  eIPStatus,
132  eIPAlias,
133  eIPName,
134  eIPLastChange,
135  eIPLowerLayers,
136  eIPRouter,
137  eIPReset,
138  eIPMaxMTUSize,
139  eIPType,
140  eIPLoopback,
141  eIPIPv4AddressNumberOfEntries,
142 #ifdef IPV6_SUPPORT
143  eIPIPv6AddressNumberOfEntries,
144 #endif // IPV6_SUPPORT
145  eIPAutoIPEnable
147 
148 /** @} */ //End of the Doxygen tag TR69_HOSTIF_DEVICE_INTERFACE_IP_DSSTRUCT
149 
150 /** @defgroup TR_069_DEVICE_IP_INTERFACE_API TR-069 Device.IP.Interface object API.
151  * @ingroup TR_069_DEVICE_IP_API
152  *
153  * The Device.IP.Interface table (a stackable interface object) models the layer 3 IP
154  * interface.
155  *
156  * Each IP interface can be attached to the IPv4 and/or IPv6 stack. The interface's IP
157  * addresses and prefixes are listed in the IPv4Address, IPv6Address and IPv6Prefix
158  * tables.
159  *
160  * @note <ul>
161  * <li>Support for manipulating Loopback interfaces is OPTIONAL, so the
162  * implementation MAY choose not to create (or allow the ACS to create)
163  * Interface instances of type Loopback.</li>
164  *
165  * <li>When the ACS administratively disables the interface, i.e. sets
166  * Enable to false, the interface's automatically-assigned IP addresses
167  * and prefixes MAY be retained. When the ACS administratively enables
168  * the interface, i.e. sets Enable to true, these IP addresses and
169  * prefixes MUST be refreshed. It's up to the implementation to decide
170  * exactly what this means: it SHOULD take all reasonable steps to
171  * refresh everything but if it is unable, for example, to refresh a
172  * prefix that still has a significant lifetime, it might well choose
173  * to retain rather than discard it.</li>
174  *
175  * <li>At most one entry in this table (regardless of whether or not it
176  * is enabled) can exist with a given value for Alias, or with a given
177  * value for Name. On creation of a new table entry, the CPE MUST choose
178  * initial values for Alias and Name such that the new entry does not
179  * conflict with any existing entries.</li>
180  * </ul>
181  *
182  * @todo The following parameters are listed as parameters for which "Both Read and
183  * Write support is REQUIRED". However there are no setter or getter functions
184  * declared here for any of these.
185  *
186  * <tt>
187  * <ul><li>IPv6Enable</li></ul>
188  * </tt>
189  */
190 
191 /** @addtogroup TR_069_DEVICE_IP_INTERFACE_GETTER_API TR-069 Device.IP.Interface Getter API.
192  * @ingroup TR_069_DEVICE_IP_INTERFACE_API
193  *
194  * \section dev_ipinterface_getter TR-069 Device.IP.Interface object Getter API
195  *
196  * This is the getter group of API for the <b>Device.IP.Interface.{i}</b> object.
197  *
198  * The interface for all functions is identical and is described here.
199  *
200  * @param[in] *name This is the complete path name of the parameter extracted from
201  * soap message, e.g. ::get_Device_IP_Interface_Status.
202  * In this case, the path is "Device.IP.Interface.{i}.Status".
203  * @param[in] *type Data type of parameter defined for TR-069. This is same as the
204  * data type used in the Xi3 data-model.xml file.
205  * (see parameter.h)
206  * @param[out] *value This is the value of the parameter requested by the ACS.
207  * (see paramaccess.h)
208  *
209  * @return The status of the operation.
210  * @retval OK If parameter requested was successfully fetched. (Same as <b>NO_ERROR</b>).
211  * @retval NO_ERROR If parameter requested was successfully fetched. (Same as <b>OK</b>).
212  * @retval DIAG_ERROR Diagnostic error.
213  * @retval ERR_??? Appropriate error value otherwise (see dimark_globals.h).
214  *
215  * @todo Clarify description of DIAG_ERROR.
216  *
217  * @{
218  */
219 
220 /**
221  * @brief This class provides the hostIf IP interface for getting IP interface information.
222  * @ingroup TR69_HOSTIF_DEVICE_INTERFACE_IP_CLASSES
223  */
225 
226  static GHashTable *ifHash;
227  static IPInterface stIPInterfaceInstance;
228 
229  int dev_id;
230  char nameOfInterface[IF_NAMESIZE];
231 
232  hostIf_IPInterface(int dev_id);
233  ~hostIf_IPInterface() {};
234 
235  void refreshInterfaceName ();
236 
237  unsigned int getIPAddressNumberOfEntries (sa_family_t address_family);
238  int set_Interface_Reset (unsigned int value);
239  int set_Interface_Enable (int value);
240  int set_Interface_Mtu (unsigned int value);
241 
242  bool bCalledEnable;
243  bool bCalledIPv4Enable;
244  bool bCalledIPv6Enable;
245  bool bCalledStatus;
246  bool bCalledName;
247  bool bCalledReset;
248  bool bCalledMaxMTUSize;
249  bool bCalledType;
250  bool bCalledLoopback;
251  bool bCalledIPv4AddressNumberOfEntries;
252 
253  unsigned int backupIPv4AddressNumberOfEntries;
254  unsigned int backupMaxMTUSize;
255 
256  bool backupLoopback;
257  bool backupReset;
258  bool backupIPv4Enable;
259  bool backupIPv6Enable;
260  bool backupEnable;
261 
262  char backupType[_BUF_LEN_16];
263  char backupName[_BUF_LEN_16];
264  char backupStatus[_BUF_LEN_16];
265 
266 
267 public:
268 
269  static hostIf_IPInterface* getInstance(int dev_id);
270  static void closeInstance(hostIf_IPInterface*);
271  static GList* getAllInstances();
272  static void closeAllInstances();
273 
274  int handleGetMsg (const char* pSetting, HOSTIF_MsgData_t* stMsgData);
275  int handleSetMsg (const char* pSetting, HOSTIF_MsgData_t* stMsgData);
276 
277  static void getActiveFlags (char* nameOfInterface, struct ifreq& ifr);
278  static bool isLoopback (char* nameOfInterface);
279  static bool isEnabled (char* nameOfInterface);
280  static int getMTU (char* nameOfInterface);
281 
282  void getInterfaceOperationalState (char* operationalState);
283  unsigned int getIPv4AddressNumberOfEntries ();
284  unsigned int getIPv6AddressNumberOfEntries ();
285  unsigned int getIPv6PrefixNumberOfEntries ();
286 
287 
288  int get_Interface_Enable(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
289 
290 
291  int get_Interface_IPv4Enable(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
292 
293  int get_Interface_IPv6Enable(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
294 
295 
296  int get_Interface_ULAEnable(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
297 
298 
299  int get_Interface_Status(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
300 
301 
302  int get_Interface_Alias(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
303 
304 
305  int get_Interface_Name(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
306 
307 
308  int get_Interface_LastChange(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
309 
310  /**
311  * @brief Get IP Interface LowerLayers.
312  *
313  * This function provides a comma-separated list (maximum length 1024) of strings. Each
314  * list item MUST be the path name of an interface object that is stacked immediately
315  * below this interface object.
316  *
317  * @note If the referenced object is deleted, the corresponding item MUST be removed
318  * from the list.
319  *
320  * @note LowerLayers MUST be an empty string and <b>read-only</b> when Type is Loopback,
321  * Tunnel, or Tunneled.
322  *
323  * See @ref dev_ipinterface_getter
324  *
325  */
326  int get_Interface_LowerLayers(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
327 
328 
329  int get_Interface_Router(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
330 
331  /**
332  * @brief Get IP Interface Reset status.
333  *
334  * This function returns false, regardless of the actual value.
335  *
336  * @note The value of this parameter is not part of the device configuration and is
337  * always false when read.
338  *
339  * See @ref dev_ipinterface_getter
340  *
341  */
342 
343  int get_Interface_Reset(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
344 
345 
346  int get_Interface_MaxMTUSize(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
347 
348 
349  int get_Interface_Type(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
350 
351 
352  int get_Interface_Loopback(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
353 
354  /**
355  * @brief Get the IP Interface IPv4AddressNumberOfEntries.
356  *
357  * This function provides the number of entries in the IPv4 Address table.
358  *
359  * See @ref dev_ipinterface_getter
360  *
361  */
362 
364 
365 #ifdef IPV6_SUPPORT
366  /**
367  * @brief Get the IP Interface IPv6AddressNumberOfEntries.
368  *
369  * This function provides the number of entries in the IPv4 Address table.
370  *
371  * See @ref dev_ipinterface_getter
372  *
373  */
374  int get_Interface_IPv6AddressNumberOfEntries (HOSTIF_MsgData_t *stMsgData);
375 
376  int get_Interface_IPv6PrefixNumberOfEntries (HOSTIF_MsgData_t *stMsgData);
377 #endif
378 
379  /**
380  * @brief Get the status (enabled/disabled) of Auto-IP on an IP Interface.
381  *
382  * This function indicates whether or not (<tt>true</tt> or <tt>false</tt>) auto-IP
383  * is enabled for this IP interface.
384  *
385  * @note <ul>
386  * <li>This mechanism is only used with IPv4.</li>
387  * <li>When auto-IP is enabled on an interface, an IPv4Address object
388  * will dynamically be created and configured with auto-IP parameter
389  * values.</li>
390  * <li>The exact conditions under which an auto-IP address is created
391  * (e.g. always when enabled or only in absence of dynamic IP
392  * addressing) is implementation specific.</li>
393  * </ul>
394  *
395  * @par
396  *
397  * See @ref dev_ipinterface_getter
398  *
399  */
400  int get_Interface_AutoIPEnable(HOSTIF_MsgData_t *stMsgData, bool *pChanged = NULL);
401 
402  /* End of TR_069_DEVICE_IP_INTERFACE_GETTER_API doxygen group */
403  /**
404  * @}
405  */
406 
407  /** @addtogroup TR_069_DEVICE_IP_INTERFACE_SETTER_API TR-069 Device.IP.Interface Setter API.
408  * @ingroup TR_069_DEVICE_IP_INTERFACE_API
409  *
410  * \section dev_ipinterface_setter TR-069 Device.IP.Interface object Setter API
411  *
412  * This is the setter group of API for the <b>Device.IP.Interface.{i}</b> object.
413  *
414  * The interface for all functions is identical and is described here.
415  *
416  * @param[in] *name This is the complete path name of the parameter extracted from
417  * soap message, e.g. ::set_Device_IP_Interface_LowerLayers.
418  * In this case, the path is "Device.IP.Interface.{i}.LowerLayers".
419  * @param[in] *type Data type of parameter defined for TR-069. This is same as the
420  * data type used in the Xi3 data-model.xml file.
421  * (see parameter.h)
422  * @param[in] *value This is the value to which the parameter requested by the ACS
423  * must be set.
424  * (see paramaccess.h)
425  *
426  * @return The status of the operation.
427  * @retval OK If parameter requested was successfully updated. (Same as <b>NO_ERROR</b>).
428  * @retval NO_ERROR If parameter requested was successfully updated. (Same as <b>OK</b>).
429  * @retval DIAG_ERROR Diagnostic error.
430  * @retval ERR_??? Appropriate error value otherwise (see dimark_globals.h).
431  *
432  * @todo Clarify description of DIAG_ERROR.
433  *
434  * @{
435  */
436 
437  /**
438  * @brief Set the status (enabled/disabled) of IP Interface.
439  *
440  * This function enables (<tt>true</tt>) or disables (<tt>false</tt>) this IP
441  * interface (regardless of IPv4Enable and IPv6Enable).
442  *
443  * See @ref dev_ipinterface_setter
444  *
445  */
446  int set_Interface_Enable(HOSTIF_MsgData_t *stMsgData);
447 
448  /**
449  * @brief Attach/Detach an IP interface to/from the IPv4 stack.
450  *
451  * This function attaches or detaches this IP interface to/from the IPv4 stack. If
452  * set to <tt>true</tt>, then this interface is attached to the IPv4 stack. If set
453  * to false, then this interface is detached from the IPv4 stack.
454  *
455  * @note <ul>
456  * <li>Once detached from the IPv4 stack, the interface will now no
457  * longer be able to pass IPv4 packets, and will be operationally down
458  * (unless also attached to an enabled IPv6 stack).</li>
459  *
460  * <li>For an IPv4 capable device, if IPv4Enable is not present this
461  * interface SHOULD be permanently attached to the IPv4 stack.</li>
462  *
463  * <li>IPv4Enable is independent of Enable, and that to administratively
464  * enable an interface for IPv4 it is necessary for both Enable and
465  * IPv4Enable to be true.</li>
466  * </ul>
467  *
468  * See @ref dev_ipinterface_setter
469  *
470  */
472 
473 
475 
476 
477  int set_Interface_Alias(HOSTIF_MsgData_t *stMsgData);
478 
479 
481 
482 
483  int set_Interface_Router(HOSTIF_MsgData_t *stMsgData);
484 
485 
486  int set_Interface_Reset(HOSTIF_MsgData_t *stMsgData);
487 
488 
490 
491 
493 
494 
496 
497  /* End of TR_069_DEVICE_IP_INTERFACE_SETTER_API doxygen group */
498  /**
499  * @}
500  */
501 
502 };
503 
504 #endif /* DEVICE_IP_INTERFACE_H_ */
505 
506 
507 /** @} */
508 /** @} */
hostIf_IPInterface::get_Interface_Router
int get_Interface_Router(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the Router instance that is associated with an IP Interface entry....
Definition: Device_IP_Interface.cpp:736
hostIf_IPInterface::get_Interface_Enable
int get_Interface_Enable(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the status to enabled or disabled of an IP Interface. It provides the values such ...
Definition: Device_IP_Interface.cpp:366
hostIf_IPInterface::get_Interface_LastChange
int get_Interface_LastChange(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the last change of status time of the interface. It provides the accumulated time ...
Definition: Device_IP_Interface.cpp:680
hostIf_IPInterface::set_Interface_MaxMTUSize
int set_Interface_MaxMTUSize(HOSTIF_MsgData_t *stMsgData)
This function sets the size of maximum transmission unit (MTU), i.e. the largest allowed size of an I...
Definition: Device_IP_Interface.cpp:1343
hostIf_IPInterface::get_Interface_Name
int get_Interface_Name(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the IP Interface Name.It provides the textual name of the interface as assigned by...
Definition: Device_IP_Interface.cpp:638
_HostIf_MsgData_t
Definition: hostIf_tr69ReqHandler.h:170
hostIf_IPInterface::get_Interface_Reset
int get_Interface_Reset(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
Get IP Interface Reset status.
Definition: Device_IP_Interface.cpp:759
hostIf_IPInterface::get_Interface_Type
int get_Interface_Type(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the IP Interface Type. It provides the IP interface type. Possible values are Norm...
Definition: Device_IP_Interface.cpp:831
hostIf_IPInterface::get_Interface_Alias
int get_Interface_Alias(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the instance handle for an IP Interface. It provides a non-volatile handle used to...
Definition: Device_IP_Interface.cpp:620
hostIf_main.h
hostIf_main API.
hostIf_IPInterface::get_Interface_IPv4AddressNumberOfEntries
int get_Interface_IPv4AddressNumberOfEntries(HOSTIF_MsgData_t *stMsgData)
Get the IP Interface IPv4AddressNumberOfEntries.
Definition: Device_IP_Interface.cpp:1016
hostIf_IPInterface::getIPv4AddressNumberOfEntries
unsigned int getIPv4AddressNumberOfEntries()
Definition: Device_IP_Interface.cpp:998
hostIf_IPInterface::set_Interface_IPv4Enable
int set_Interface_IPv4Enable(HOSTIF_MsgData_t *stMsgData)
Attach/Detach an IP interface to/from the IPv4 stack.
Definition: Device_IP_Interface.cpp:1185
hostIf_IPInterface::get_Interface_LowerLayers
int get_Interface_LowerLayers(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
Get IP Interface LowerLayers.
Definition: Device_IP_Interface.cpp:708
hostIf_IPInterface::get_Interface_IPv4Enable
int get_Interface_IPv4Enable(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the status of the IPv4 stack attachment for an IP interface. It indicates whether ...
Definition: Device_IP_Interface.cpp:411
EDeviceIPInterfaceMembers
EDeviceIPInterfaceMembers
It contains the members variables of the EDeviceIPInterfaceMembers enum.
Definition: Device_IP_Interface.h:125
hostIf_IPInterface::set_Interface_Loopback
int set_Interface_Loopback(HOSTIF_MsgData_t *stMsgData)
This function sets the IP interface LoopBack flag to 'true' or 'false'. Currently not implemented.
Definition: Device_IP_Interface.cpp:1371
Device_IP_Interface
It contains the members variables of the Device_IP_Interface structure.
Definition: Device_IP_Interface.h:97
hostIf_IPInterface::get_Interface_Status
int get_Interface_Status(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the IP interface Status. It provides the current operational state of the Interfac...
Definition: Device_IP_Interface.cpp:576
hostIf_IPInterface::set_Interface_Router
int set_Interface_Router(HOSTIF_MsgData_t *stMsgData)
This function sets the router instance that is associated with an IP Interface entry....
Definition: Device_IP_Interface.cpp:1287
hostIf_IPInterface::get_Interface_ULAEnable
int get_Interface_ULAEnable(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the status 'enabled' or 'disabled' of ULA(Unique local address) generation for an ...
Definition: Device_IP_Interface.cpp:514
hostIf_IPInterface::set_Interface_Alias
int set_Interface_Alias(HOSTIF_MsgData_t *stMsgData)
This function sets a non-volatile handle used to reference this IP interface instance....
Definition: Device_IP_Interface.cpp:1237
hostIf_IPInterface
This class provides the hostIf IP interface for getting IP interface information.
Definition: Device_IP_Interface.h:224
hostIf_IPInterface::set_Interface_AutoIPEnable
int set_Interface_AutoIPEnable(HOSTIF_MsgData_t *stMsgData)
This function sets the Auto-IP on an IP Interface status 'enable' or 'disable'. It sets 'true' for en...
Definition: Device_IP_Interface.cpp:1399
hostIf_IPInterface::set_Interface_LowerLayers
int set_Interface_LowerLayers(HOSTIF_MsgData_t *stMsgData)
This function sets the IP Interface LowerLayers. Given a comma-separated list (maximum length 1024) o...
Definition: Device_IP_Interface.cpp:1261
hostIf_IPInterface::get_Interface_MaxMTUSize
int get_Interface_MaxMTUSize(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the IP Interface MaxMTUSize. It provides the maximum transmission unit (MTU),...
Definition: Device_IP_Interface.cpp:795
IPInterface
struct Device_IP_Interface IPInterface
It contains the members variables of the Device_IP_Interface structure.
hostIf_IPInterface::hostIf_IPInterface
hostIf_IPInterface(int dev_id)
Class Constructor of the class hostIf_IPInterface.
Definition: Device_IP_Interface.cpp:132
hostIf_IPInterface::get_Interface_Loopback
int get_Interface_Loopback(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
This function gets the IP interface loopback. It indicates whether or not the IP interface is a loopb...
Definition: Device_IP_Interface.cpp:951
hostIf_IPInterface::get_Interface_AutoIPEnable
int get_Interface_AutoIPEnable(HOSTIF_MsgData_t *stMsgData, bool *pChanged=NULL)
Get the status (enabled/disabled) of Auto-IP on an IP Interface.
Definition: Device_IP_Interface.cpp:1111
hostIf_IPInterface::getIPv6AddressNumberOfEntries
unsigned int getIPv6AddressNumberOfEntries()
Definition: Device_IP_Interface.cpp:1039
hostIf_IPInterface::set_Interface_ULAEnable
int set_Interface_ULAEnable(HOSTIF_MsgData_t *stMsgData)
This function sets the status 'enabled' or 'disabled' of ULA(Unique Local Address) generation for an ...
Definition: Device_IP_Interface.cpp:1207