swconfig: support receiving SWITCH_TYPE_LINK from kernel
[openwrt/openwrt.git] / package / network / config / swconfig / src / swlib.h
index 28bdd7f7cbea22c1070c98cc72c93fe04bc6ae5f..f443bf5c2655e4f75dca4bb55f70ac72a38ee749 100644 (file)
@@ -105,11 +105,16 @@ enum swlib_port_flags {
        SWLIB_PORT_FLAG_TAGGED = (1 << 0),
 };
 
+enum swlib_link_flags {
+       SWLIB_LINK_FLAG_EEE_100BASET = (1 << 0),
+       SWLIB_LINK_FLAG_EEE_1000BASET = (1 << 1),
+};
 
 struct switch_dev;
 struct switch_attr;
 struct switch_port;
 struct switch_port_map;
+struct switch_port_link;
 struct switch_val;
 struct uci_package;
 
@@ -138,6 +143,7 @@ struct switch_val {
                char *s;
                int i;
                struct switch_port *ports;
+               struct switch_port_link *link;
        } value;
 };
 
@@ -146,8 +152,8 @@ struct switch_attr {
        int atype;
        int id;
        int type;
-       const char *name;
-       const char *description;
+       char *name;
+       char *description;
        struct switch_attr *next;
 };
 
@@ -158,7 +164,18 @@ struct switch_port {
 
 struct switch_portmap {
        unsigned int virt;
-       const char *segment;
+       char *segment;
+};
+
+struct switch_port_link {
+       int link:1;
+       int duplex:1;
+       int aneg:1;
+       int tx_flow:1;
+       int rx_flow:1;
+       int speed;
+       /* in ethtool adv_t format */
+       uint32_t eee;
 };
 
 /**