From 679083337d55f4fe0b28019de4090f9bfe1edfca Mon Sep 17 00:00:00 2001 From: Amin Ben Ramdhane Date: Thu, 11 Feb 2021 19:14:27 +0100 Subject: [PATCH] move get_net_device_status function to dmcommon.c file --- dmtree/tr181/atm.c | 3 +-- dmtree/tr181/ethernet.c | 28 +--------------------------- dmtree/tr181/ethernet.h | 1 - dmtree/tr181/ptm.c | 3 +-- libbbf_api/dmcommon.c | 26 ++++++++++++++++++++++++++ libbbf_api/dmcommon.h | 1 + 6 files changed, 30 insertions(+), 32 deletions(-) diff --git a/dmtree/tr181/atm.c b/dmtree/tr181/atm.c index 80a5f49e..ec18166d 100644 --- a/dmtree/tr181/atm.c +++ b/dmtree/tr181/atm.c @@ -10,7 +10,6 @@ */ #include "dmentry.h" -#include "ethernet.h" #include "atm.h" struct atm_args @@ -231,7 +230,7 @@ static int set_atm_enable(char *refparam, struct dmctx *ctx, void *data, char *i /*#Device.ATM.Link.{i}.Status!SYSFS:/sys/class/net/@Name/operstate*/ static int get_atm_status(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - return get_device_status(((struct atm_args *)data)->ifname, value); + return get_net_device_status(((struct atm_args *)data)->ifname, value); } /************************************************************* diff --git a/dmtree/tr181/ethernet.c b/dmtree/tr181/ethernet.c index fb477e45..b8de12b8 100644 --- a/dmtree/tr181/ethernet.c +++ b/dmtree/tr181/ethernet.c @@ -94,32 +94,6 @@ void get_bridge_port_linker(struct dmctx *ctx, char *intf_name, char **value) } } -int get_device_status(const char *device, char **value) -{ - char *operstate = NULL; - - get_net_device_sysfs(device, "operstate", &operstate); - if (operstate == NULL || *operstate == '\0') { - *value = "Down"; - return 0; - } - - if (strcmp(operstate, "up") == 0) - *value = "Up"; - else if (strcmp(operstate, "unknown") == 0) - *value = "Unknown"; - else if (strcmp(operstate, "notpresent") == 0) - *value = "NotPresent"; - else if (strcmp(operstate, "lowerlayerdown") == 0) - *value = "LowerLayerDown"; - else if (strcmp(operstate, "dormant") == 0) - *value = "Dormant"; - else - *value = "Down"; - - return 0; -} - static int eth_iface_sysfs(const struct uci_section *data, const char *name, char **value) { char *device; @@ -619,7 +593,7 @@ static int set_EthernetInterface_Enable(char *refparam, struct dmctx *ctx, void /*#Device.Ethernet.Interface.{i}.Status!SYSFS:/sys/class/net/@Name/operstate*/ static int get_EthernetInterface_Status(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - return get_device_status(((struct eth_port_args *)data)->ifname, value); + return get_net_device_status(((struct eth_port_args *)data)->ifname, value); } /*#Device.Ethernet.Interface.{i}.Alias!UCI:dmmap_ports/ethport,@i-1/eth_port_alias*/ diff --git a/dmtree/tr181/ethernet.h b/dmtree/tr181/ethernet.h index de1b373b..e7d6f6b3 100644 --- a/dmtree/tr181/ethernet.h +++ b/dmtree/tr181/ethernet.h @@ -30,6 +30,5 @@ extern DMLEAF tEthernetRMONStatsParams[]; void get_bridge_port_linker(struct dmctx *ctx, char *intf_name, char **value); int is_vlan_termination_section(const char *name); -int get_device_status(const char *device, char **value); #endif //__ETHERNET_H diff --git a/dmtree/tr181/ptm.c b/dmtree/tr181/ptm.c index 7dbbb29e..eb1f649f 100644 --- a/dmtree/tr181/ptm.c +++ b/dmtree/tr181/ptm.c @@ -10,7 +10,6 @@ */ #include "dmentry.h" -#include "ethernet.h" #include "ptm.h" struct ptm_args @@ -128,7 +127,7 @@ static int set_ptm_enable(char *refparam, struct dmctx *ctx, void *data, char *i /*#Device.PTM.Link.{i}.Status!SYSFS:/sys/class/net/@Name/operstate*/ static int get_ptm_status(char *refparam, struct dmctx *ctx, void *data, char *instance, char **value) { - return get_device_status(((struct ptm_args *)data)->ifname, value); + return get_net_device_status(((struct ptm_args *)data)->ifname, value); } /************************************************************* diff --git a/libbbf_api/dmcommon.c b/libbbf_api/dmcommon.c index 22f5a74e..f5b935eb 100644 --- a/libbbf_api/dmcommon.c +++ b/libbbf_api/dmcommon.c @@ -1036,6 +1036,32 @@ int get_net_device_sysfs(const char *device, const char *name, char **value) return 0; } +int get_net_device_status(const char *device, char **value) +{ + char *operstate = NULL; + + get_net_device_sysfs(device, "operstate", &operstate); + if (operstate == NULL || *operstate == '\0') { + *value = "Down"; + return 0; + } + + if (strcmp(operstate, "up") == 0) + *value = "Up"; + else if (strcmp(operstate, "unknown") == 0) + *value = "Unknown"; + else if (strcmp(operstate, "notpresent") == 0) + *value = "NotPresent"; + else if (strcmp(operstate, "lowerlayerdown") == 0) + *value = "LowerLayerDown"; + else if (strcmp(operstate, "dormant") == 0) + *value = "Dormant"; + else + *value = "Down"; + + return 0; +} + int get_net_iface_sysfs(const char *uci_iface, const char *name, char **value) { const char *device = get_device((char *)uci_iface); diff --git a/libbbf_api/dmcommon.h b/libbbf_api/dmcommon.h index 9b68e73e..7e1514fb 100644 --- a/libbbf_api/dmcommon.h +++ b/libbbf_api/dmcommon.h @@ -266,6 +266,7 @@ struct uci_section *is_dmmap_section_exist_eq(char* package, char* section, char int dm_read_sysfs_file(const char *file, char *dst, unsigned len); int get_net_iface_sysfs(const char *uci_iface, const char *name, char **value); int get_net_device_sysfs(const char *device, const char *name, char **value); +int get_net_device_status(const char *device, char **value); char *get_device_from_wifi_iface(const char *wifi_iface, const char *wifi_section); int dm_time_format(time_t ts, char **dst); void convert_string_to_hex(const char *str, char *hex);