Add media types and options for ATM. While on most ATM cards media cannot
be changed, it is very convenient to be able to toggle SDH/Sonet, idle/unassigned cells and scrambled mode and to see the carrier state. Reviewed by: -arch (if_media.h definitions)
This commit is contained in:
parent
667c974f0a
commit
2b75e097f1
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=114232
@ -159,6 +159,14 @@ media_status(int s, struct rt_addrinfo *info __unused)
|
|||||||
else
|
else
|
||||||
printf("no ring");
|
printf("no ring");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IFM_ATM:
|
||||||
|
if (ifmr.ifm_status & IFM_ACTIVE)
|
||||||
|
printf("active");
|
||||||
|
else
|
||||||
|
printf("no carrier");
|
||||||
|
break;
|
||||||
|
|
||||||
case IFM_IEEE80211:
|
case IFM_IEEE80211:
|
||||||
/* XXX: Different value for adhoc? */
|
/* XXX: Different value for adhoc? */
|
||||||
if (ifmr.ifm_status & IFM_ACTIVE)
|
if (ifmr.ifm_status & IFM_ACTIVE)
|
||||||
@ -370,6 +378,15 @@ static struct ifmedia_description ifm_subtype_ieee80211_option_descriptions[] =
|
|||||||
struct ifmedia_description ifm_subtype_ieee80211_mode_descriptions[] =
|
struct ifmedia_description ifm_subtype_ieee80211_mode_descriptions[] =
|
||||||
IFM_SUBTYPE_IEEE80211_MODE_DESCRIPTIONS;
|
IFM_SUBTYPE_IEEE80211_MODE_DESCRIPTIONS;
|
||||||
|
|
||||||
|
static struct ifmedia_description ifm_subtype_atm_descriptions[] =
|
||||||
|
IFM_SUBTYPE_ATM_DESCRIPTIONS;
|
||||||
|
|
||||||
|
static struct ifmedia_description ifm_subtype_atm_aliases[] =
|
||||||
|
IFM_SUBTYPE_ATM_ALIASES;
|
||||||
|
|
||||||
|
static struct ifmedia_description ifm_subtype_atm_option_descriptions[] =
|
||||||
|
IFM_SUBTYPE_ATM_OPTION_DESCRIPTIONS;
|
||||||
|
|
||||||
static struct ifmedia_description ifm_subtype_shared_descriptions[] =
|
static struct ifmedia_description ifm_subtype_shared_descriptions[] =
|
||||||
IFM_SUBTYPE_SHARED_DESCRIPTIONS;
|
IFM_SUBTYPE_SHARED_DESCRIPTIONS;
|
||||||
|
|
||||||
@ -465,6 +482,23 @@ static struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = {
|
|||||||
{ NULL, 0 },
|
{ NULL, 0 },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
{
|
||||||
|
{ &ifm_subtype_shared_descriptions[0], 0 },
|
||||||
|
{ &ifm_subtype_shared_aliases[0], 1 },
|
||||||
|
{ &ifm_subtype_atm_descriptions[0], 0 },
|
||||||
|
{ &ifm_subtype_atm_aliases[0], 1 },
|
||||||
|
{ NULL, 0 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{ &ifm_shared_option_descriptions[0], 0 },
|
||||||
|
{ &ifm_subtype_atm_option_descriptions[0], 0 },
|
||||||
|
{ NULL, 0 },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
{ NULL, 0 },
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -412,6 +412,12 @@ struct ifmedia_description ifm_subtype_ieee80211_option_descriptions[] =
|
|||||||
struct ifmedia_description ifm_subtype_ieee80211_mode_descriptions[] =
|
struct ifmedia_description ifm_subtype_ieee80211_mode_descriptions[] =
|
||||||
IFM_SUBTYPE_IEEE80211_MODE_DESCRIPTIONS;
|
IFM_SUBTYPE_IEEE80211_MODE_DESCRIPTIONS;
|
||||||
|
|
||||||
|
struct ifmedia_description ifm_subtype_atm_descriptions[] =
|
||||||
|
IFM_SUBTYPE_ATM_DESCRIPTIONS;
|
||||||
|
|
||||||
|
struct ifmedia_description ifm_subtype_atm_option_descriptions[] =
|
||||||
|
IFM_SUBTYPE_ATM_OPTION_DESCRIPTIONS;
|
||||||
|
|
||||||
struct ifmedia_description ifm_subtype_shared_descriptions[] =
|
struct ifmedia_description ifm_subtype_shared_descriptions[] =
|
||||||
IFM_SUBTYPE_SHARED_DESCRIPTIONS;
|
IFM_SUBTYPE_SHARED_DESCRIPTIONS;
|
||||||
|
|
||||||
@ -446,6 +452,11 @@ struct ifmedia_type_to_subtype ifmedia_types_to_subtypes[] = {
|
|||||||
&ifm_subtype_ieee80211_option_descriptions[0],
|
&ifm_subtype_ieee80211_option_descriptions[0],
|
||||||
&ifm_subtype_ieee80211_mode_descriptions[0]
|
&ifm_subtype_ieee80211_mode_descriptions[0]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
&ifm_subtype_atm_descriptions[0],
|
||||||
|
&ifm_subtype_atm_option_descriptions[0],
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -199,6 +199,23 @@ int ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr,
|
|||||||
#define IFM_IEEE80211_11B 2 /* Direct Sequence mode */
|
#define IFM_IEEE80211_11B 2 /* Direct Sequence mode */
|
||||||
#define IFM_IEEE80211_11G 3 /* 2Ghz, CCK mode */
|
#define IFM_IEEE80211_11G 3 /* 2Ghz, CCK mode */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ATM
|
||||||
|
*/
|
||||||
|
#define IFM_ATM 0x000000a0
|
||||||
|
#define IFM_ATM_UNKNOWN 3
|
||||||
|
#define IFM_ATM_UTP_25 4
|
||||||
|
#define IFM_ATM_TAXI_100 5
|
||||||
|
#define IFM_ATM_TAXI_140 6
|
||||||
|
#define IFM_ATM_MM_155 7
|
||||||
|
#define IFM_ATM_SM_155 8
|
||||||
|
#define IFM_ATM_UTP_155 9
|
||||||
|
#define IFM_ATM_MM_622 10
|
||||||
|
#define IFM_ATM_SM_622 11
|
||||||
|
#define IFM_ATM_SDH 0x00000100 /* SDH instead of SONET */
|
||||||
|
#define IFM_ATM_NOSCRAMB 0x00000200 /* no scrambling */
|
||||||
|
#define IFM_ATM_UNASSIGNED 0x00000400 /* unassigned cells */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Shared media sub-types
|
* Shared media sub-types
|
||||||
*/
|
*/
|
||||||
@ -271,6 +288,7 @@ struct ifmedia_description {
|
|||||||
{ IFM_TOKEN, "Token ring" }, \
|
{ IFM_TOKEN, "Token ring" }, \
|
||||||
{ IFM_FDDI, "FDDI" }, \
|
{ IFM_FDDI, "FDDI" }, \
|
||||||
{ IFM_IEEE80211, "IEEE 802.11 Wireless Ethernet" }, \
|
{ IFM_IEEE80211, "IEEE 802.11 Wireless Ethernet" }, \
|
||||||
|
{ IFM_ATM, "ATM" }, \
|
||||||
{ 0, NULL }, \
|
{ 0, NULL }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -435,6 +453,40 @@ struct ifmedia_description {
|
|||||||
{ 0, NULL }, \
|
{ 0, NULL }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# define IFM_SUBTYPE_ATM_DESCRIPTIONS { \
|
||||||
|
{ IFM_ATM_UNKNOWN, "Unknown" }, \
|
||||||
|
{ IFM_ATM_UTP_25, "UTP/25.6MBit" }, \
|
||||||
|
{ IFM_ATM_TAXI_100, "Taxi/100MBit" }, \
|
||||||
|
{ IFM_ATM_TAXI_140, "Taxi/140MBit" }, \
|
||||||
|
{ IFM_ATM_MM_155, "Multi-mode/155MBit" }, \
|
||||||
|
{ IFM_ATM_SM_155, "Single-mode/155MBit" }, \
|
||||||
|
{ IFM_ATM_UTP_155, "UTP/155MBit" }, \
|
||||||
|
{ IFM_ATM_MM_622, "Mult-imode/622MBit" }, \
|
||||||
|
{ IFM_ATM_SM_622, "Single-mode/622MBit" }, \
|
||||||
|
{ 0, NULL }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
# define IFM_SUBTYPE_ATM_ALIASES { \
|
||||||
|
{ IFM_ATM_UNKNOWN, "UNKNOWN" }, \
|
||||||
|
{ IFM_ATM_UTP_25, "UTP-25" }, \
|
||||||
|
{ IFM_ATM_TAXI_100, "TAXI-100" }, \
|
||||||
|
{ IFM_ATM_TAXI_140, "TAXI-140" }, \
|
||||||
|
{ IFM_ATM_MM_155, "MM-155" }, \
|
||||||
|
{ IFM_ATM_SM_155, "SM-155" }, \
|
||||||
|
{ IFM_ATM_UTP_155, "UTP-155" }, \
|
||||||
|
{ IFM_ATM_MM_622, "MM-622" }, \
|
||||||
|
{ IFM_ATM_SM_622, "SM-622" }, \
|
||||||
|
{ 0, NULL }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define IFM_SUBTYPE_ATM_OPTION_DESCRIPTIONS { \
|
||||||
|
{ IFM_ATM_SDH, "SDH" }, \
|
||||||
|
{ IFM_ATM_NOSCRAMB, "Noscramb" }, \
|
||||||
|
{ IFM_ATM_UNASSIGNED, "Unassigned" }, \
|
||||||
|
{ 0, NULL }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#define IFM_SUBTYPE_SHARED_DESCRIPTIONS { \
|
#define IFM_SUBTYPE_SHARED_DESCRIPTIONS { \
|
||||||
{ IFM_AUTO, "autoselect" }, \
|
{ IFM_AUTO, "autoselect" }, \
|
||||||
{ IFM_MANUAL, "manual" }, \
|
{ IFM_MANUAL, "manual" }, \
|
||||||
|
Loading…
Reference in New Issue
Block a user