forked from Ivasoft/openwrt
swconfig: add SWITCH_TYPE_LINK and support sending link info to user space
So far we were sending link data as a string. It got some drawbacks: 1) Didn't allow writing clean user space apps reading link state. It was needed to do some screen scraping. 2) Forced whole PORT_LINK communication to be string based. Adding support for *setting* port link required passing string and parting it in the kernel space. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> SVN-Revision: 47997
This commit is contained in:
@@ -122,6 +122,7 @@ struct switch_dev {
|
||||
struct mutex sw_mutex;
|
||||
struct switch_port *portbuf;
|
||||
struct switch_portmap *portmap;
|
||||
struct switch_port_link linkbuf;
|
||||
|
||||
char buf[128];
|
||||
|
||||
@@ -148,6 +149,7 @@ struct switch_val {
|
||||
const char *s;
|
||||
u32 i;
|
||||
struct switch_port *ports;
|
||||
struct switch_port_link *link;
|
||||
} value;
|
||||
};
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ enum {
|
||||
SWITCH_ATTR_OP_VALUE_INT,
|
||||
SWITCH_ATTR_OP_VALUE_STR,
|
||||
SWITCH_ATTR_OP_VALUE_PORTS,
|
||||
SWITCH_ATTR_OP_VALUE_LINK,
|
||||
SWITCH_ATTR_OP_DESCRIPTION,
|
||||
/* port lists */
|
||||
SWITCH_ATTR_PORT,
|
||||
@@ -86,6 +87,7 @@ enum switch_val_type {
|
||||
SWITCH_TYPE_INT,
|
||||
SWITCH_TYPE_STRING,
|
||||
SWITCH_TYPE_PORTS,
|
||||
SWITCH_TYPE_LINK,
|
||||
SWITCH_TYPE_NOVAL,
|
||||
};
|
||||
|
||||
@@ -97,6 +99,20 @@ enum {
|
||||
SWITCH_PORT_ATTR_MAX
|
||||
};
|
||||
|
||||
/* link nested attributes */
|
||||
enum {
|
||||
SWITCH_LINK_UNSPEC,
|
||||
SWITCH_LINK_FLAG_LINK,
|
||||
SWITCH_LINK_FLAG_DUPLEX,
|
||||
SWITCH_LINK_FLAG_ANEG,
|
||||
SWITCH_LINK_FLAG_TX_FLOW,
|
||||
SWITCH_LINK_FLAG_RX_FLOW,
|
||||
SWITCH_LINK_SPEED,
|
||||
SWITCH_LINK_FLAG_EEE_100BASET,
|
||||
SWITCH_LINK_FLAG_EEE_1000BASET,
|
||||
SWITCH_LINK_ATTR_MAX,
|
||||
};
|
||||
|
||||
#define SWITCH_ATTR_DEFAULTS_OFFSET 0x1000
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user