@ -127,30 +127,11 @@ swconfig_get_pvid(struct switch_dev *dev, const struct switch_attr *attr,
return dev - > ops - > get_port_pvid ( dev , val - > port_vlan , & val - > value . i ) ;
return dev - > ops - > get_port_pvid ( dev , val - > port_vlan , & val - > value . i ) ;
}
}
static const char *
swconfig_speed_str ( enum switch_port_speed speed )
{
switch ( speed ) {
case SWITCH_PORT_SPEED_10 :
return " 10baseT " ;
case SWITCH_PORT_SPEED_100 :
return " 100baseT " ;
case SWITCH_PORT_SPEED_1000 :
return " 1000baseT " ;
default :
break ;
}
return " unknown " ;
}
static int
static int
swconfig_get_link ( struct switch_dev * dev , const struct switch_attr * attr ,
swconfig_get_link ( struct switch_dev * dev , const struct switch_attr * attr ,
struct switch_val * val )
struct switch_val * val )
{
{
struct switch_port_link link ;
struct switch_port_link * link = val - > value . link ;
int len ;
int ret ;
if ( val - > port_vlan > = dev - > ports )
if ( val - > port_vlan > = dev - > ports )
return - EINVAL ;
return - EINVAL ;
@ -158,32 +139,8 @@ swconfig_get_link(struct switch_dev *dev, const struct switch_attr *attr,
if ( ! dev - > ops - > get_port_link )
if ( ! dev - > ops - > get_port_link )
return - EOPNOTSUPP ;
return - EOPNOTSUPP ;
memset ( & link , 0 , sizeof ( link ) ) ;
memset ( link , 0 , sizeof ( * link ) ) ;
ret = dev - > ops - > get_port_link ( dev , val - > port_vlan , & link ) ;
return dev - > ops - > get_port_link ( dev , val - > port_vlan , link ) ;
if ( ret )
return ret ;
memset ( dev - > buf , 0 , sizeof ( dev - > buf ) ) ;
if ( link . link )
len = snprintf ( dev - > buf , sizeof ( dev - > buf ) ,
" port:%d link:up speed:%s %s-duplex %s%s%s%s%s " ,
val - > port_vlan ,
swconfig_speed_str ( link . speed ) ,
link . duplex ? " full " : " half " ,
link . tx_flow ? " txflow " : " " ,
link . rx_flow ? " rxflow " : " " ,
link . eee & ADVERTISED_100baseT_Full ? " eee100 " : " " ,
link . eee & ADVERTISED_1000baseT_Full ? " eee1000 " : " " ,
link . aneg ? " auto " : " " ) ;
else
len = snprintf ( dev - > buf , sizeof ( dev - > buf ) , " port:%d link:down " ,
val - > port_vlan ) ;
val - > value . s = dev - > buf ;
val - > len = len ;
return 0 ;
}
}
static int
static int
@ -246,7 +203,7 @@ static struct switch_attr default_port[] = {
. get = swconfig_get_pvid ,
. get = swconfig_get_pvid ,
} ,
} ,
[ PORT_LINK ] = {
[ PORT_LINK ] = {
. type = SWITCH_TYPE_STRING ,
. type = SWITCH_TYPE_LINK ,
. name = " link " ,
. name = " link " ,
. description = " Get port link information " ,
. description = " Get port link information " ,
. set = NULL ,
. set = NULL ,