12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745 |
- #ifndef _LINUX_ETHTOOL_H
- #define _LINUX_ETHTOOL_H
- #include <linux/kernel.h>
- #include <linux/types.h>
- #include <linux/if_ether.h>
- #include <limits.h> /* for INT_MAX */
- struct ethtool_cmd {
- __u32 cmd;
- __u32 supported;
- __u32 advertising;
- __u16 speed;
- __u8 duplex;
- __u8 port;
- __u8 phy_address;
- __u8 transceiver;
- __u8 autoneg;
- __u8 mdio_support;
- __u32 maxtxpkt;
- __u32 maxrxpkt;
- __u16 speed_hi;
- __u8 eth_tp_mdix;
- __u8 eth_tp_mdix_ctrl;
- __u32 lp_advertising;
- __u32 reserved[2];
- };
- static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
- __u32 speed)
- {
- ep->speed = (__u16)(speed & 0xFFFF);
- ep->speed_hi = (__u16)(speed >> 16);
- }
- static __inline__ __u32 ethtool_cmd_speed(const struct ethtool_cmd *ep)
- {
- return (ep->speed_hi << 16) | ep->speed;
- }
- #define ETH_MDIO_SUPPORTS_C22 1
- #define ETH_MDIO_SUPPORTS_C45 2
- #define ETHTOOL_FWVERS_LEN 32
- #define ETHTOOL_BUSINFO_LEN 32
- #define ETHTOOL_EROMVERS_LEN 32
- struct ethtool_drvinfo {
- __u32 cmd;
- char driver[32];
- char version[32];
- char fw_version[ETHTOOL_FWVERS_LEN];
- char bus_info[ETHTOOL_BUSINFO_LEN];
- char erom_version[ETHTOOL_EROMVERS_LEN];
- char reserved2[12];
- __u32 n_priv_flags;
- __u32 n_stats;
- __u32 testinfo_len;
- __u32 eedump_len;
- __u32 regdump_len;
- };
- #define SOPASS_MAX 6
- struct ethtool_wolinfo {
- __u32 cmd;
- __u32 supported;
- __u32 wolopts;
- __u8 sopass[SOPASS_MAX];
- };
- struct ethtool_value {
- __u32 cmd;
- __u32 data;
- };
- enum tunable_id {
- ETHTOOL_ID_UNSPEC,
- ETHTOOL_RX_COPYBREAK,
- ETHTOOL_TX_COPYBREAK,
-
- __ETHTOOL_TUNABLE_COUNT,
- };
- enum tunable_type_id {
- ETHTOOL_TUNABLE_UNSPEC,
- ETHTOOL_TUNABLE_U8,
- ETHTOOL_TUNABLE_U16,
- ETHTOOL_TUNABLE_U32,
- ETHTOOL_TUNABLE_U64,
- ETHTOOL_TUNABLE_STRING,
- ETHTOOL_TUNABLE_S8,
- ETHTOOL_TUNABLE_S16,
- ETHTOOL_TUNABLE_S32,
- ETHTOOL_TUNABLE_S64,
- };
- struct ethtool_tunable {
- __u32 cmd;
- __u32 id;
- __u32 type_id;
- __u32 len;
- void *data[0];
- };
- struct ethtool_regs {
- __u32 cmd;
- __u32 version;
- __u32 len;
- __u8 data[0];
- };
- struct ethtool_eeprom {
- __u32 cmd;
- __u32 magic;
- __u32 offset;
- __u32 len;
- __u8 data[0];
- };
- struct ethtool_eee {
- __u32 cmd;
- __u32 supported;
- __u32 advertised;
- __u32 lp_advertised;
- __u32 eee_active;
- __u32 eee_enabled;
- __u32 tx_lpi_enabled;
- __u32 tx_lpi_timer;
- __u32 reserved[2];
- };
- struct ethtool_modinfo {
- __u32 cmd;
- __u32 type;
- __u32 eeprom_len;
- __u32 reserved[8];
- };
- struct ethtool_coalesce {
- __u32 cmd;
- __u32 rx_coalesce_usecs;
- __u32 rx_max_coalesced_frames;
- __u32 rx_coalesce_usecs_irq;
- __u32 rx_max_coalesced_frames_irq;
- __u32 tx_coalesce_usecs;
- __u32 tx_max_coalesced_frames;
- __u32 tx_coalesce_usecs_irq;
- __u32 tx_max_coalesced_frames_irq;
- __u32 stats_block_coalesce_usecs;
- __u32 use_adaptive_rx_coalesce;
- __u32 use_adaptive_tx_coalesce;
- __u32 pkt_rate_low;
- __u32 rx_coalesce_usecs_low;
- __u32 rx_max_coalesced_frames_low;
- __u32 tx_coalesce_usecs_low;
- __u32 tx_max_coalesced_frames_low;
- __u32 pkt_rate_high;
- __u32 rx_coalesce_usecs_high;
- __u32 rx_max_coalesced_frames_high;
- __u32 tx_coalesce_usecs_high;
- __u32 tx_max_coalesced_frames_high;
- __u32 rate_sample_interval;
- };
- struct ethtool_ringparam {
- __u32 cmd;
- __u32 rx_max_pending;
- __u32 rx_mini_max_pending;
- __u32 rx_jumbo_max_pending;
- __u32 tx_max_pending;
- __u32 rx_pending;
- __u32 rx_mini_pending;
- __u32 rx_jumbo_pending;
- __u32 tx_pending;
- };
- struct ethtool_channels {
- __u32 cmd;
- __u32 max_rx;
- __u32 max_tx;
- __u32 max_other;
- __u32 max_combined;
- __u32 rx_count;
- __u32 tx_count;
- __u32 other_count;
- __u32 combined_count;
- };
- struct ethtool_pauseparam {
- __u32 cmd;
- __u32 autoneg;
- __u32 rx_pause;
- __u32 tx_pause;
- };
- #define ETH_GSTRING_LEN 32
- enum ethtool_stringset {
- ETH_SS_TEST = 0,
- ETH_SS_STATS,
- ETH_SS_PRIV_FLAGS,
- ETH_SS_NTUPLE_FILTERS,
- ETH_SS_FEATURES,
- ETH_SS_RSS_HASH_FUNCS,
- ETH_SS_TUNABLES,
- ETH_SS_PHY_STATS,
- };
- struct ethtool_gstrings {
- __u32 cmd;
- __u32 string_set;
- __u32 len;
- __u8 data[0];
- };
- struct ethtool_sset_info {
- __u32 cmd;
- __u32 reserved;
- __u64 sset_mask;
- __u32 data[0];
- };
- enum ethtool_test_flags {
- ETH_TEST_FL_OFFLINE = (1 << 0),
- ETH_TEST_FL_FAILED = (1 << 1),
- ETH_TEST_FL_EXTERNAL_LB = (1 << 2),
- ETH_TEST_FL_EXTERNAL_LB_DONE = (1 << 3),
- };
- struct ethtool_test {
- __u32 cmd;
- __u32 flags;
- __u32 reserved;
- __u32 len;
- __u64 data[0];
- };
- struct ethtool_stats {
- __u32 cmd;
- __u32 n_stats;
- __u64 data[0];
- };
- struct ethtool_perm_addr {
- __u32 cmd;
- __u32 size;
- __u8 data[0];
- };
- enum ethtool_flags {
- ETH_FLAG_TXVLAN = (1 << 7),
- ETH_FLAG_RXVLAN = (1 << 8),
- ETH_FLAG_LRO = (1 << 15),
- ETH_FLAG_NTUPLE = (1 << 27),
- ETH_FLAG_RXHASH = (1 << 28),
- };
- struct ethtool_tcpip4_spec {
- __be32 ip4src;
- __be32 ip4dst;
- __be16 psrc;
- __be16 pdst;
- __u8 tos;
- };
- struct ethtool_ah_espip4_spec {
- __be32 ip4src;
- __be32 ip4dst;
- __be32 spi;
- __u8 tos;
- };
- #define ETH_RX_NFC_IP4 1
- struct ethtool_usrip4_spec {
- __be32 ip4src;
- __be32 ip4dst;
- __be32 l4_4_bytes;
- __u8 tos;
- __u8 ip_ver;
- __u8 proto;
- };
- struct ethtool_tcpip6_spec {
- __be32 ip6src[4];
- __be32 ip6dst[4];
- __be16 psrc;
- __be16 pdst;
- __u8 tclass;
- };
- struct ethtool_ah_espip6_spec {
- __be32 ip6src[4];
- __be32 ip6dst[4];
- __be32 spi;
- __u8 tclass;
- };
- struct ethtool_usrip6_spec {
- __be32 ip6src[4];
- __be32 ip6dst[4];
- __be32 l4_4_bytes;
- __u8 tclass;
- __u8 l4_proto;
- };
- union ethtool_flow_union {
- struct ethtool_tcpip4_spec tcp_ip4_spec;
- struct ethtool_tcpip4_spec udp_ip4_spec;
- struct ethtool_tcpip4_spec sctp_ip4_spec;
- struct ethtool_ah_espip4_spec ah_ip4_spec;
- struct ethtool_ah_espip4_spec esp_ip4_spec;
- struct ethtool_usrip4_spec usr_ip4_spec;
- struct ethtool_tcpip6_spec tcp_ip6_spec;
- struct ethtool_tcpip6_spec udp_ip6_spec;
- struct ethtool_tcpip6_spec sctp_ip6_spec;
- struct ethtool_ah_espip6_spec ah_ip6_spec;
- struct ethtool_ah_espip6_spec esp_ip6_spec;
- struct ethtool_usrip6_spec usr_ip6_spec;
- struct ethhdr ether_spec;
- __u8 hdata[52];
- };
- struct ethtool_flow_ext {
- __u8 padding[2];
- unsigned char h_dest[ETH_ALEN];
- __be16 vlan_etype;
- __be16 vlan_tci;
- __be32 data[2];
- };
- struct ethtool_rx_flow_spec {
- __u32 flow_type;
- union ethtool_flow_union h_u;
- struct ethtool_flow_ext h_ext;
- union ethtool_flow_union m_u;
- struct ethtool_flow_ext m_ext;
- __u64 ring_cookie;
- __u32 location;
- };
- #define ETHTOOL_RX_FLOW_SPEC_RING 0x00000000FFFFFFFFLL
- #define ETHTOOL_RX_FLOW_SPEC_RING_VF 0x000000FF00000000LL
- #define ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF 32
- static __inline__ __u64 ethtool_get_flow_spec_ring(__u64 ring_cookie)
- {
- return ETHTOOL_RX_FLOW_SPEC_RING & ring_cookie;
- };
- static __inline__ __u64 ethtool_get_flow_spec_ring_vf(__u64 ring_cookie)
- {
- return (ETHTOOL_RX_FLOW_SPEC_RING_VF & ring_cookie) >>
- ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF;
- };
- struct ethtool_rxnfc {
- __u32 cmd;
- __u32 flow_type;
- __u64 data;
- struct ethtool_rx_flow_spec fs;
- __u32 rule_cnt;
- __u32 rule_locs[0];
- };
- struct ethtool_rxfh_indir {
- __u32 cmd;
- __u32 size;
- __u32 ring_index[0];
- };
- struct ethtool_rxfh {
- __u32 cmd;
- __u32 rss_context;
- __u32 indir_size;
- __u32 key_size;
- __u8 hfunc;
- __u8 rsvd8[3];
- __u32 rsvd32;
- __u32 rss_config[0];
- };
- #define ETH_RXFH_INDIR_NO_CHANGE 0xffffffff
- struct ethtool_rx_ntuple_flow_spec {
- __u32 flow_type;
- union {
- struct ethtool_tcpip4_spec tcp_ip4_spec;
- struct ethtool_tcpip4_spec udp_ip4_spec;
- struct ethtool_tcpip4_spec sctp_ip4_spec;
- struct ethtool_ah_espip4_spec ah_ip4_spec;
- struct ethtool_ah_espip4_spec esp_ip4_spec;
- struct ethtool_usrip4_spec usr_ip4_spec;
- struct ethhdr ether_spec;
- __u8 hdata[72];
- } h_u, m_u;
- __u16 vlan_tag;
- __u16 vlan_tag_mask;
- __u64 data;
- __u64 data_mask;
- __s32 action;
- #define ETHTOOL_RXNTUPLE_ACTION_DROP (-1)
- #define ETHTOOL_RXNTUPLE_ACTION_CLEAR (-2)
- };
- struct ethtool_rx_ntuple {
- __u32 cmd;
- struct ethtool_rx_ntuple_flow_spec fs;
- };
- #define ETHTOOL_FLASH_MAX_FILENAME 128
- enum ethtool_flash_op_type {
- ETHTOOL_FLASH_ALL_REGIONS = 0,
- };
- struct ethtool_flash {
- __u32 cmd;
- __u32 region;
- char data[ETHTOOL_FLASH_MAX_FILENAME];
- };
- struct ethtool_dump {
- __u32 cmd;
- __u32 version;
- __u32 flag;
- __u32 len;
- __u8 data[0];
- };
- #define ETH_FW_DUMP_DISABLE 0
- struct ethtool_get_features_block {
- __u32 available;
- __u32 requested;
- __u32 active;
- __u32 never_changed;
- };
- struct ethtool_gfeatures {
- __u32 cmd;
- __u32 size;
- struct ethtool_get_features_block features[0];
- };
- struct ethtool_set_features_block {
- __u32 valid;
- __u32 requested;
- };
- struct ethtool_sfeatures {
- __u32 cmd;
- __u32 size;
- struct ethtool_set_features_block features[0];
- };
- struct ethtool_ts_info {
- __u32 cmd;
- __u32 so_timestamping;
- __s32 phc_index;
- __u32 tx_types;
- __u32 tx_reserved[3];
- __u32 rx_filters;
- __u32 rx_reserved[3];
- };
- enum ethtool_sfeatures_retval_bits {
- ETHTOOL_F_UNSUPPORTED__BIT,
- ETHTOOL_F_WISH__BIT,
- ETHTOOL_F_COMPAT__BIT,
- };
- #define ETHTOOL_F_UNSUPPORTED (1 << ETHTOOL_F_UNSUPPORTED__BIT)
- #define ETHTOOL_F_WISH (1 << ETHTOOL_F_WISH__BIT)
- #define ETHTOOL_F_COMPAT (1 << ETHTOOL_F_COMPAT__BIT)
- #define MAX_NUM_QUEUE 4096
- struct ethtool_per_queue_op {
- __u32 cmd;
- __u32 sub_command;
- __u32 queue_mask[__KERNEL_DIV_ROUND_UP(MAX_NUM_QUEUE, 32)];
- char data[];
- };
- #define ETHTOOL_GSET 0x00000001
- #define ETHTOOL_SSET 0x00000002
- #define ETHTOOL_GDRVINFO 0x00000003
- #define ETHTOOL_GREGS 0x00000004
- #define ETHTOOL_GWOL 0x00000005
- #define ETHTOOL_SWOL 0x00000006
- #define ETHTOOL_GMSGLVL 0x00000007
- #define ETHTOOL_SMSGLVL 0x00000008
- #define ETHTOOL_NWAY_RST 0x00000009
- #define ETHTOOL_GLINK 0x0000000a
- #define ETHTOOL_GEEPROM 0x0000000b
- #define ETHTOOL_SEEPROM 0x0000000c
- #define ETHTOOL_GCOALESCE 0x0000000e
- #define ETHTOOL_SCOALESCE 0x0000000f
- #define ETHTOOL_GRINGPARAM 0x00000010
- #define ETHTOOL_SRINGPARAM 0x00000011
- #define ETHTOOL_GPAUSEPARAM 0x00000012
- #define ETHTOOL_SPAUSEPARAM 0x00000013
- #define ETHTOOL_GRXCSUM 0x00000014
- #define ETHTOOL_SRXCSUM 0x00000015
- #define ETHTOOL_GTXCSUM 0x00000016
- #define ETHTOOL_STXCSUM 0x00000017
- #define ETHTOOL_GSG 0x00000018
- #define ETHTOOL_SSG 0x00000019
- #define ETHTOOL_TEST 0x0000001a
- #define ETHTOOL_GSTRINGS 0x0000001b
- #define ETHTOOL_PHYS_ID 0x0000001c
- #define ETHTOOL_GSTATS 0x0000001d
- #define ETHTOOL_GTSO 0x0000001e
- #define ETHTOOL_STSO 0x0000001f
- #define ETHTOOL_GPERMADDR 0x00000020
- #define ETHTOOL_GUFO 0x00000021
- #define ETHTOOL_SUFO 0x00000022
- #define ETHTOOL_GGSO 0x00000023
- #define ETHTOOL_SGSO 0x00000024
- #define ETHTOOL_GFLAGS 0x00000025
- #define ETHTOOL_SFLAGS 0x00000026
- #define ETHTOOL_GPFLAGS 0x00000027
- #define ETHTOOL_SPFLAGS 0x00000028
- #define ETHTOOL_GRXFH 0x00000029
- #define ETHTOOL_SRXFH 0x0000002a
- #define ETHTOOL_GGRO 0x0000002b
- #define ETHTOOL_SGRO 0x0000002c
- #define ETHTOOL_GRXRINGS 0x0000002d
- #define ETHTOOL_GRXCLSRLCNT 0x0000002e
- #define ETHTOOL_GRXCLSRULE 0x0000002f
- #define ETHTOOL_GRXCLSRLALL 0x00000030
- #define ETHTOOL_SRXCLSRLDEL 0x00000031
- #define ETHTOOL_SRXCLSRLINS 0x00000032
- #define ETHTOOL_FLASHDEV 0x00000033
- #define ETHTOOL_RESET 0x00000034
- #define ETHTOOL_SRXNTUPLE 0x00000035
- #define ETHTOOL_GRXNTUPLE 0x00000036
- #define ETHTOOL_GSSET_INFO 0x00000037
- #define ETHTOOL_GRXFHINDIR 0x00000038
- #define ETHTOOL_SRXFHINDIR 0x00000039
- #define ETHTOOL_GFEATURES 0x0000003a
- #define ETHTOOL_SFEATURES 0x0000003b
- #define ETHTOOL_GCHANNELS 0x0000003c
- #define ETHTOOL_SCHANNELS 0x0000003d
- #define ETHTOOL_SET_DUMP 0x0000003e
- #define ETHTOOL_GET_DUMP_FLAG 0x0000003f
- #define ETHTOOL_GET_DUMP_DATA 0x00000040
- #define ETHTOOL_GET_TS_INFO 0x00000041
- #define ETHTOOL_GMODULEINFO 0x00000042
- #define ETHTOOL_GMODULEEEPROM 0x00000043
- #define ETHTOOL_GEEE 0x00000044
- #define ETHTOOL_SEEE 0x00000045
- #define ETHTOOL_GRSSH 0x00000046
- #define ETHTOOL_SRSSH 0x00000047
- #define ETHTOOL_GTUNABLE 0x00000048
- #define ETHTOOL_STUNABLE 0x00000049
- #define ETHTOOL_GPHYSTATS 0x0000004a
- #define ETHTOOL_PERQUEUE 0x0000004b
- #define ETHTOOL_GLINKSETTINGS 0x0000004c
- #define ETHTOOL_SLINKSETTINGS 0x0000004d
- #define SPARC_ETH_GSET ETHTOOL_GSET
- #define SPARC_ETH_SSET ETHTOOL_SSET
- enum ethtool_link_mode_bit_indices {
- ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0,
- ETHTOOL_LINK_MODE_10baseT_Full_BIT = 1,
- ETHTOOL_LINK_MODE_100baseT_Half_BIT = 2,
- ETHTOOL_LINK_MODE_100baseT_Full_BIT = 3,
- ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 4,
- ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 5,
- ETHTOOL_LINK_MODE_Autoneg_BIT = 6,
- ETHTOOL_LINK_MODE_TP_BIT = 7,
- ETHTOOL_LINK_MODE_AUI_BIT = 8,
- ETHTOOL_LINK_MODE_MII_BIT = 9,
- ETHTOOL_LINK_MODE_FIBRE_BIT = 10,
- ETHTOOL_LINK_MODE_BNC_BIT = 11,
- ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 12,
- ETHTOOL_LINK_MODE_Pause_BIT = 13,
- ETHTOOL_LINK_MODE_Asym_Pause_BIT = 14,
- ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 15,
- ETHTOOL_LINK_MODE_Backplane_BIT = 16,
- ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 17,
- ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 18,
- ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 19,
- ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 20,
- ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 21,
- ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 22,
- ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 23,
- ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 24,
- ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 25,
- ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 26,
- ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 27,
- ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 28,
- ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 29,
- ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 30,
- ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 31,
- ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 32,
- ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 33,
- ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 34,
- ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 35,
- ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 36,
- ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 37,
- ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 38,
- ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 39,
- ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 40,
- ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 41,
- ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 42,
- ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 43,
- ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 44,
- ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 45,
- ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 46,
-
- __ETHTOOL_LINK_MODE_LAST
- = ETHTOOL_LINK_MODE_10000baseER_Full_BIT,
- };
- #define __ETHTOOL_LINK_MODE_LEGACY_MASK(base_name) \
- (1UL << (ETHTOOL_LINK_MODE_ ## base_name ## _BIT))
- #define SUPPORTED_10baseT_Half __ETHTOOL_LINK_MODE_LEGACY_MASK(10baseT_Half)
- #define SUPPORTED_10baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10baseT_Full)
- #define SUPPORTED_100baseT_Half __ETHTOOL_LINK_MODE_LEGACY_MASK(100baseT_Half)
- #define SUPPORTED_100baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(100baseT_Full)
- #define SUPPORTED_1000baseT_Half __ETHTOOL_LINK_MODE_LEGACY_MASK(1000baseT_Half)
- #define SUPPORTED_1000baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(1000baseT_Full)
- #define SUPPORTED_Autoneg __ETHTOOL_LINK_MODE_LEGACY_MASK(Autoneg)
- #define SUPPORTED_TP __ETHTOOL_LINK_MODE_LEGACY_MASK(TP)
- #define SUPPORTED_AUI __ETHTOOL_LINK_MODE_LEGACY_MASK(AUI)
- #define SUPPORTED_MII __ETHTOOL_LINK_MODE_LEGACY_MASK(MII)
- #define SUPPORTED_FIBRE __ETHTOOL_LINK_MODE_LEGACY_MASK(FIBRE)
- #define SUPPORTED_BNC __ETHTOOL_LINK_MODE_LEGACY_MASK(BNC)
- #define SUPPORTED_10000baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseT_Full)
- #define SUPPORTED_Pause __ETHTOOL_LINK_MODE_LEGACY_MASK(Pause)
- #define SUPPORTED_Asym_Pause __ETHTOOL_LINK_MODE_LEGACY_MASK(Asym_Pause)
- #define SUPPORTED_2500baseX_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(2500baseX_Full)
- #define SUPPORTED_Backplane __ETHTOOL_LINK_MODE_LEGACY_MASK(Backplane)
- #define SUPPORTED_1000baseKX_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(1000baseKX_Full)
- #define SUPPORTED_10000baseKX4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseKX4_Full)
- #define SUPPORTED_10000baseKR_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseKR_Full)
- #define SUPPORTED_10000baseR_FEC __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseR_FEC)
- #define SUPPORTED_20000baseMLD2_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(20000baseMLD2_Full)
- #define SUPPORTED_20000baseKR2_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(20000baseKR2_Full)
- #define SUPPORTED_40000baseKR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseKR4_Full)
- #define SUPPORTED_40000baseCR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseCR4_Full)
- #define SUPPORTED_40000baseSR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseSR4_Full)
- #define SUPPORTED_40000baseLR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseLR4_Full)
- #define SUPPORTED_56000baseKR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseKR4_Full)
- #define SUPPORTED_56000baseCR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseCR4_Full)
- #define SUPPORTED_56000baseSR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseSR4_Full)
- #define SUPPORTED_56000baseLR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseLR4_Full)
- #define ADVERTISED_10baseT_Half __ETHTOOL_LINK_MODE_LEGACY_MASK(10baseT_Half)
- #define ADVERTISED_10baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10baseT_Full)
- #define ADVERTISED_100baseT_Half __ETHTOOL_LINK_MODE_LEGACY_MASK(100baseT_Half)
- #define ADVERTISED_100baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(100baseT_Full)
- #define ADVERTISED_1000baseT_Half __ETHTOOL_LINK_MODE_LEGACY_MASK(1000baseT_Half)
- #define ADVERTISED_1000baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(1000baseT_Full)
- #define ADVERTISED_Autoneg __ETHTOOL_LINK_MODE_LEGACY_MASK(Autoneg)
- #define ADVERTISED_TP __ETHTOOL_LINK_MODE_LEGACY_MASK(TP)
- #define ADVERTISED_AUI __ETHTOOL_LINK_MODE_LEGACY_MASK(AUI)
- #define ADVERTISED_MII __ETHTOOL_LINK_MODE_LEGACY_MASK(MII)
- #define ADVERTISED_FIBRE __ETHTOOL_LINK_MODE_LEGACY_MASK(FIBRE)
- #define ADVERTISED_BNC __ETHTOOL_LINK_MODE_LEGACY_MASK(BNC)
- #define ADVERTISED_10000baseT_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseT_Full)
- #define ADVERTISED_Pause __ETHTOOL_LINK_MODE_LEGACY_MASK(Pause)
- #define ADVERTISED_Asym_Pause __ETHTOOL_LINK_MODE_LEGACY_MASK(Asym_Pause)
- #define ADVERTISED_2500baseX_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(2500baseX_Full)
- #define ADVERTISED_Backplane __ETHTOOL_LINK_MODE_LEGACY_MASK(Backplane)
- #define ADVERTISED_1000baseKX_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(1000baseKX_Full)
- #define ADVERTISED_10000baseKX4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseKX4_Full)
- #define ADVERTISED_10000baseKR_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseKR_Full)
- #define ADVERTISED_10000baseR_FEC __ETHTOOL_LINK_MODE_LEGACY_MASK(10000baseR_FEC)
- #define ADVERTISED_20000baseMLD2_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(20000baseMLD2_Full)
- #define ADVERTISED_20000baseKR2_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(20000baseKR2_Full)
- #define ADVERTISED_40000baseKR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseKR4_Full)
- #define ADVERTISED_40000baseCR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseCR4_Full)
- #define ADVERTISED_40000baseSR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseSR4_Full)
- #define ADVERTISED_40000baseLR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(40000baseLR4_Full)
- #define ADVERTISED_56000baseKR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseKR4_Full)
- #define ADVERTISED_56000baseCR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseCR4_Full)
- #define ADVERTISED_56000baseSR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseSR4_Full)
- #define ADVERTISED_56000baseLR4_Full __ETHTOOL_LINK_MODE_LEGACY_MASK(56000baseLR4_Full)
- #define SPEED_10 10
- #define SPEED_100 100
- #define SPEED_1000 1000
- #define SPEED_2500 2500
- #define SPEED_5000 5000
- #define SPEED_10000 10000
- #define SPEED_20000 20000
- #define SPEED_25000 25000
- #define SPEED_40000 40000
- #define SPEED_50000 50000
- #define SPEED_56000 56000
- #define SPEED_100000 100000
- #define SPEED_UNKNOWN -1
- static __inline__ int ethtool_validate_speed(__u32 speed)
- {
- return speed <= INT_MAX || speed == SPEED_UNKNOWN;
- }
- #define DUPLEX_HALF 0x00
- #define DUPLEX_FULL 0x01
- #define DUPLEX_UNKNOWN 0xff
- static __inline__ int ethtool_validate_duplex(__u8 duplex)
- {
- switch (duplex) {
- case DUPLEX_HALF:
- case DUPLEX_FULL:
- case DUPLEX_UNKNOWN:
- return 1;
- }
- return 0;
- }
- #define PORT_TP 0x00
- #define PORT_AUI 0x01
- #define PORT_MII 0x02
- #define PORT_FIBRE 0x03
- #define PORT_BNC 0x04
- #define PORT_DA 0x05
- #define PORT_NONE 0xef
- #define PORT_OTHER 0xff
- #define XCVR_INTERNAL 0x00
- #define XCVR_EXTERNAL 0x01
- #define XCVR_DUMMY1 0x02
- #define XCVR_DUMMY2 0x03
- #define XCVR_DUMMY3 0x04
- #define AUTONEG_DISABLE 0x00
- #define AUTONEG_ENABLE 0x01
- #define ETH_TP_MDI_INVALID 0x00
- #define ETH_TP_MDI 0x01
- #define ETH_TP_MDI_X 0x02
- #define ETH_TP_MDI_AUTO 0x03
- #define WAKE_PHY (1 << 0)
- #define WAKE_UCAST (1 << 1)
- #define WAKE_MCAST (1 << 2)
- #define WAKE_BCAST (1 << 3)
- #define WAKE_ARP (1 << 4)
- #define WAKE_MAGIC (1 << 5)
- #define WAKE_MAGICSECURE (1 << 6)
- #define TCP_V4_FLOW 0x01
- #define UDP_V4_FLOW 0x02
- #define SCTP_V4_FLOW 0x03
- #define AH_ESP_V4_FLOW 0x04
- #define TCP_V6_FLOW 0x05
- #define UDP_V6_FLOW 0x06
- #define SCTP_V6_FLOW 0x07
- #define AH_ESP_V6_FLOW 0x08
- #define AH_V4_FLOW 0x09
- #define ESP_V4_FLOW 0x0a
- #define AH_V6_FLOW 0x0b
- #define ESP_V6_FLOW 0x0c
- #define IPV4_USER_FLOW 0x0d
- #define IP_USER_FLOW IPV4_USER_FLOW
- #define IPV6_USER_FLOW 0x0e
- #define IPV4_FLOW 0x10
- #define IPV6_FLOW 0x11
- #define ETHER_FLOW 0x12
- #define FLOW_EXT 0x80000000
- #define FLOW_MAC_EXT 0x40000000
- #define RXH_L2DA (1 << 1)
- #define RXH_VLAN (1 << 2)
- #define RXH_L3_PROTO (1 << 3)
- #define RXH_IP_SRC (1 << 4)
- #define RXH_IP_DST (1 << 5)
- #define RXH_L4_B_0_1 (1 << 6)
- #define RXH_L4_B_2_3 (1 << 7)
- #define RXH_DISCARD (1 << 31)
- #define RX_CLS_FLOW_DISC 0xffffffffffffffffULL
- #define RX_CLS_LOC_SPECIAL 0x80000000
- #define RX_CLS_LOC_ANY 0xffffffff
- #define RX_CLS_LOC_FIRST 0xfffffffe
- #define RX_CLS_LOC_LAST 0xfffffffd
- #define ETH_MODULE_SFF_8079 0x1
- #define ETH_MODULE_SFF_8079_LEN 256
- #define ETH_MODULE_SFF_8472 0x2
- #define ETH_MODULE_SFF_8472_LEN 512
- #define ETH_MODULE_SFF_8636 0x3
- #define ETH_MODULE_SFF_8636_LEN 256
- #define ETH_MODULE_SFF_8436 0x4
- #define ETH_MODULE_SFF_8436_LEN 256
- enum ethtool_reset_flags {
-
- ETH_RESET_MGMT = 1 << 0,
- ETH_RESET_IRQ = 1 << 1,
- ETH_RESET_DMA = 1 << 2,
- ETH_RESET_FILTER = 1 << 3,
- ETH_RESET_OFFLOAD = 1 << 4,
- ETH_RESET_MAC = 1 << 5,
- ETH_RESET_PHY = 1 << 6,
- ETH_RESET_RAM = 1 << 7,
- ETH_RESET_DEDICATED = 0x0000ffff,
- ETH_RESET_ALL = 0xffffffff,
- };
- #define ETH_RESET_SHARED_SHIFT 16
- struct ethtool_link_settings {
- __u32 cmd;
- __u32 speed;
- __u8 duplex;
- __u8 port;
- __u8 phy_address;
- __u8 autoneg;
- __u8 mdio_support;
- __u8 eth_tp_mdix;
- __u8 eth_tp_mdix_ctrl;
- __s8 link_mode_masks_nwords;
- __u32 reserved[8];
- __u32 link_mode_masks[0];
-
- };
- #endif
|