• Aucun résultat trouvé

UN EXEMPLEDECARTERESEAU:3COM501 8.1 Desription de la arte Nousn'allonspasdonnerdedesriptionphysiquedeettearteniommentl'installersurun PC.Ils'agitdetoutefaond'uneartemaintenantanienne.Leselementspourlaprogrammation deetteartesontderits,inompletement,dans[3

N/A
N/A
Protected

Academic year: 2022

Partager "UN EXEMPLEDECARTERESEAU:3COM501 8.1 Desription de la arte Nousn'allonspasdonnerdedesriptionphysiquedeettearteniommentl'installersurun PC.Ils'agitdetoutefaond'uneartemaintenantanienne.Leselementspourlaprogrammation deetteartesontderits,inompletement,dans[3"

Copied!
6
0
0

Texte intégral

(1)

Chapitre 8

Un exemple de arte reseau :

3Com 501

Dans le as d'Ethernet, la ouhe liaison est en grande partie mise en uvre au sein d'un

adaptateurouartereseau,l'unedesnombreusesartesinsereessurlaartemere(ommela

artegraphiqueoulaarteson).Ils'agitd'uneunitesemi-autonomequi reoitunpaquetdela

partdelaouhereseaudel'emetteur.Laartereseauenapsuleepaquetauseind'unetrame

etlatransmetausupportphysique.

Al'autreextremite,laartedudestinataireextraitlepaquet

delatrame,leplaequelquepartenmemoireviveetdelenheuneinterruptionmateriellepour

prevenirqu'unpaquet estarrive.

Laartereseaupeut^etreplusoumoinsperfetionnee. Ellepeutajouterlesbitsdedetetion

d'erreursenemissionetlesontr^olerenreeption.Leserviedetransportablepeutegalement

^

etre entierement mis en uvrea son niveau (notamment l'insertion de numeros de sequene,

l'ativation de temporisateurs et l'ehange d'aquittements). Elle peut supprimer des trames

reeptionneesontenantdeserreurssansenavertirl'h^ote.

L'une des premieres artes reseau onue par 3Com (l'entreprise reee par les inventeurs

d'Ethernet) pour lesmiro-ordinateurs ompatibles PC futla arte3Com 501,sortie en 1988.

C'estaussil'unedespremieresaavoiretepriseenompteparLinux.

(2)

94 CHAPITRE8. UN EXEMPLEDECARTERESEAU:3COM501

8.1 Desription de la arte

Nousn'allonspasdonnerdedesriptionphysiquedeettearteniommentl'installersurun

PC.Ils'agitdetoutefaond'uneartemaintenantanienne.Leselementspourlaprogrammation

deetteartesontderits,inompletement,dans[3Com501℄.

Cette arte est un ontr^oleur/transepteurpour les ompatibles PC qui est onforme a la

speiationEthernet,version1.0 du30septembre1980. Elleimplementelesouhesphysique

et liaisondumodele ISO.Elle omprendun ontr^oleurpourlaouhe liaison,appele8001ou

EDLCetuntampondetramede2Ko,suÆsantpourontenirunetrameEthernet,enemission

ouenreeption.Letamponpeutopereraveleontr^oleurdeDMA8237AdesompatiblesPC.

Leontr^oleurpeututiliserleontr^oleurd'interruption8259AdesompatiblesPC.

8.1.1 Interfae logiielle

L'adressedebase,ommeportd'entree-sortiedumiroproesseur,peut^etrehoisieparmiun

ertainnombredevaleursal'aidedeavaliers.

L'interfaelogiielle s'eetue a l'aidede 16 registres,aessiblesomme otetsa partirde

l'adressedebase.Ces registresportentlesnomssuivants,suivantqu'onlitouqu'onerit:

Dealage Leture

Eriture

0 Adresse de la station 0

1 Adresse de la station 1

2 Adresse de la station 2

3 Adresse de la station 3

4 Adresse de la station 4

5 Adresse de la station 5

6 Reeive Status Reeive Command

7 Transmit Status Transmit Command

8 GP Buffer Pointer [LSB℄ GP Buffer Pointer [LSB℄

9 GP Buffer Pointer [MSB℄ GP Buffer Pointer [MSB℄

A RCV Buffer Pointer [LSB℄ RCV Buffer Pointer Clear

B RCV Buffer Pointer [MSB℄

C Ethernet Address Prom Window

D

E Auxiliary Status (CSR) Auxiliary Command (CSR)

F Buffer Window Buffer Window

{ Le registreF,BuerWindow, permet d'aeder,eneritureommeenleture,aunotet

dutamponparmiles2Kpossibles,d'ou sonnomdefen^etre.

{ LepointeurGP(General Purpose buerpointer) ontientlapositiondeette fen^etredans

le tampon. Onabesoinde onzebits pourbalayerl'amplitude0a 2047.L'otetdepoids

faible onstitueleregistre8et l'otetde poidsfort(ave5bitsayantunevaleurnulle)le

registre9.Uneletureouuneerituredanslafen^etreinrementeautomatiquementGP.

{ LepointeurRP(Reeive Pointer)estegalementunpointeurdeonzebits.Ilestinremente

ahaquefoisquelaartereoitunotet.On peuten lirelavaleurgr^aeauxregistresA

et B(enleture)etleremettreazerogr^aeauregistreA(eneriture).

{ L'adresse MACdelaarteestentierementlibre,stokeeenmemoirePROM.Oneritses

sixotetsenutilisantlesregistres0a5.Onlitl'adresseatraversleregistreCdetailleun

otetenpositionnantlesbits0{2deGPpourindiquerl'otetquel'onveutlire.Laleture

(3)

{ Lesautresregistress'appellentRSR(Reeive StatusRegister),RCR(Reeive Command Re-

gister),TSR(TransmitStatusRegister),TCR(TransmitCommandRegister),ASR(Auxiliary

StatusRegister)etACR(AuxiliaryCommandRegister) aveunedenominationquirappelle

leurfontion.

8.1.2 Le registre de ommande d'emission: TCR

Lorsqu'onenvoieunpaquetalaarte3Com501pourqu'elleemetteunetrame,elle-iessaie

del'emettreetrenvoiel'undesdiagnostissuivants:emissionreussie('est-a-direquelatramea

quitteelaarte,maisonnesaitpassielleestparvenueadestination),ollision,seiziemeollision

oudepassementdeapaite.

Apreshaque ollision, lesdonnees demeurentdans le tampon mais le pilote doitremettre

GPazeroetredemarrerexpliitementl'emission.Leontr^oleurattendalorsledelaiapproprieet

essaied'emettreanouveau.

Apreslaseiziemeollision,l'essaid'emissiondoit^etreabandonned'apreslesreglesdustandard

Ethernet.

Le depassementde apaitesurvientlorsqu'onessaie d'emettre unetrame ave unmauvais

CRCoupouressayerdediagnostiquerquelquehose.

Lepilotepeuthoisird'ignoreroudedeteterhaundeesdiagnostis.Ill'indiquegr^aeau

TCR:

7 6 5 4 3 2 1 0

non utilises reussi ollision 16 ollision depassement

Un bit a1invite areveler lediagnostidans leTSR.Les raisonsdudepassementdeapaitea

deteter sont preiseesdansle registreACR.Si on veutqu'une interruptionsoit delenhee lors

deladetetiond'undeesdiagnostis,ilfaut lepreiserdansleregistreACR.

8.1.3 Le registre de statut d'emission: TSR

Leontr^oleurhangelavaleurduTSRapreshaqueessaid'emission.Lastruturedeeregistre

estlasuivante:

7 6 5 4 3 2 1 0

non utilises pr^et 16 ollisions ollision depassement

8.1.4 Le registre de ommande de reeption: RCR

Lepilotepeutprogrammerlaartepourqu'ellen'aeptequelestramesdeertaineslasses;

les autres trames sont alors ignorees automatiquement. Lorsqu'une trame est ignoree, RP est

remisazeroet leontr^oleurest pr^etareevoirlatramesuivante.

LastrutureduregistreRCRestlasuivante:

7 6 5 4 3 2 1 0

mode aepte EOF trop ourt trop lent CRC depassement

{ Lemoded'aeptationdesadresses(AddressMathMode)determinequellessontlestrames

quel'onveutaepterauvudeleuradressededestination:

{ 0{reeveurinhibe,nereoitauunetrame;

(4)

96 CHAPITRE8. UN EXEMPLEDECARTERESEAU:3COM501

{ 2{reoitl'adressedelastationet ladiusion generale;

{ 3{reoitl'adressedelastationet ladiusion restreinte.

{ Le bit 5positionnea1 indiqueque l'on nedoit aepterque lestrames bien onstituees

(taille legale,pasd'erreurdeCRCet pasdedepassementdeapaite).

{ Le bit 4 indique quel'on ne doit aepter queles trames sanserreur de depassementde

apaite,'est-a-direellespourlesquellesunEOF(EndOfFrame) aetedetete.

{ Lebit3indiquequel'onnedoitpasaepterlestramestropourtes(moinsde60otets,

en exluantlepreambuleet leCRC).Ononsidereeneetqu'ils'agitertainementd'un

fragmentd^uaunproblemedeollision.

{ Lebit2indiquequ'ilfautdeteterundebittroplent(dribble error).Latrameseraepen-

danthargee.

{ Lebit 1indiquequel'onnedoitpasaepterlestramespresentantuneerreurdeCRC.

{ Lebit0indiquequ'ilfautdeteterleserreursdedepassementdeapaite,'est-a-direque

leontr^oleurdeteteunetrameinteressantealorsqueletamponn'estpasdisponible.

8.1.5 Le registre de statut de reeption: RSR

Le pilote denit les trames ayant un inter^et en positionnant le registre de ommande en

reeption. Le ontr^oleurhange le registrede statut dereeptionapreshaque trame detetee

surlereseau,qu'ellepresenteounonuninter^et.Lastruturedee registreestlasuivante:

7 6 5 4 3 2 1 0

Vieux non bonne erreur trop ourt trop lent erreur erreur de

defini trame EOF CRC depassement

{ Lorsque le ontr^oleur detete une trame interessante, le bit 7 (Stale Reeive Status) est

positionnea0.Leontr^oleurn'aepteplusalors detrame jusqu'alaleture duregistre.

Laleturepositionneebit a1.

{ Lebit 5vaut1silatramereueestinteressante.

{ Lesbits4,3et1speientlaausedel'erreursinon:trametroplongue,trametropourte,

erreur deCRC.

{ Si latrameaetereuetroplentement,lebit 2est positionnea1.

{ Si le ontr^oleur n'est pas en position de reeption lorsqu'une trame arrive, le bit 0 est

positionnea1.

8.1.6 Le registre de ommande auxiliaire: ACR

Lastruturedeeregistreestlasuivante:

7 6 5 4 3 2 1 0

Reset RIDE DMA non utilise ontr^ole CRC IRE

{ Positionnerlebitreseta1permetdereinitialisertouslesregistresdestatutetdeontr^ole.

Lepilotedoitabsolumentlerepositionnera0ensuite.

(5)

{ Le bit RIDE (pour l'anglais Request Interrupt and DMA Enable) speie a la arte de

positionnerlessignauxIRQ(Interrupt ReQuest)et DRQ(Dmaservie ReQuest)surlebus

systeme.Lorsquele RIDEvaut0,leontr^oleurne peut pasengendrer detransferts DMA

et ne peutengendrer desinterruptionsquesi lebit IRE(pourl'anglais Interrupt Request

Enable) vaut1.

{ Lesbits2et3ontr^olentl'aesautampon:

{ 0{Lebussystemeaaesautampon,quin'estplusrelieaureseaudanse as.

{ 1{Modetransmission(suiviautomatiquementdumodereeption).

{ 2{Modereeption.

{ 3{Modeperipheriqueenboule.

{ Si lebit1vaut1,leontr^oleurpeuttransmettredestramesayantunmauvaisCRC.

8.1.7 Le registre de statut auxiliaire: ASR

LastrutureduregistreASRest lasuivante:

7 6 5 4 3 2 1 0

Oupe RIDE requ^ete DMA ontr^ole CRC Oupe

en emission DMA effetuee du tampon en reeption

{ Le bit 7 n'a de signiation que lorsque le ontr^ole de tampon est positionne pour le

peripheriqueenbouleoupouremission.Ilprendlavaleur1lorsquelepilotedemarreune

emission (enpositionnantleontr^ole detamponduRCAa1). Ilrevientazeroen asde

ollision ou lorsque l'emission se termine ave sues. Le pilotepeut distinguer es deux

asenexaminantleregistreTSR.

{ Le pilotedemarreun transfert DMA en programmantleanal adequat duontr^oleurde

DMA et enpositionnantlesbits RIDEet DMA Request duregistreRCAdu ontr^oleurde

laartereseau.LorsqueletransfertDMAesttermine,lebit4estpositionnea1.Lepilote

eaee bitenpositionnantlebitDMA RequestduregistreRCAazero.

{ Le bit 0estpositionneaunlorsquele ontr^oleurest armepourreevoirune trame. Cei

sefaitautomatiquementapreslatransmissiond'unetrame oulorsque lepilotepositionne

leontr^oledetamponenreeptionoupourleperipheriqueenboule.Cebitrevientazero

apresqueleontr^oleuraitaepteunetrame.Lepilotedoitalorsattendre800nanoseondes

avantdelireleregistreRSR.

8.2

Emission et reeption

8.2.1 Choix de l'adresse de base et de l'IRQ

Onpeuthoisirl'adressedebasedelaarteparmi32(oum^eme64suivantlemodelehoisi)

valeurspossibles,leanalIRQparmideuxvaleurs(3ou5)et leanalDMAparmideuxvaleurs

(1ou3)enpositionnantphysiquementdesavaliers.

Nous verronsque, en e qui onernel'implementation Linux, on ommene paronsiderer

lesvaleurspardefautalasortied'usine(asavoir280,1et3respetivement)danslenoyau.L'ad-

ministrateursystemepeuthanger esvaleursgr^aealaommandeifonfigdeonguration

(6)

98 CHAPITRE8. UN EXEMPLEDECARTERESEAU:3COM501

8.2.2

Emission d'une trame

Pouremettreunetrame, ilfaut:

{ Positionnerleontr^oledetampon(registreACR)azero.Ceiproureaubussystemeun

aesautampon.

{ Charger lepaquet dans le tampon de faontelle que ledernier otetdu paquet onide

aveledernierotetdutampon,asavoir7FFhpourGP.

{ PositionnerGPpourqu'ilpointe surlepremierotetdupaquet.

{ Demarrerl'emissionenpositionnantleontr^oledetampon(registreACR)aun.

{ LireleTSRpourdeterminers'ilyaeuollisionousues.L'emissionesttermineelorsque

lebitoupeenemissiondeASRestrevenuazero.

Enasdeollision,ilfautpositionnerleontr^oledetamponazero,repositionnerleGPpuis

positionnerleontr^ole detamponaun.Ceipermetd'emettreanouveaulatrame.

8.2.3 Reeption d'une trame

Pourreevoirunetrame, ilfaut:

{ PositionnerRPazeroetleontr^oledetampon(registreACR)adeux.

{ Attendre 800nanoseondesapresquelebit oupeen reeption deASRsoit revenuazero

pourlireleregistreRSRet determinerainsilestatutdelatramequivientd'^etrereue.

{ Latailledupaquet,enotetssanspreambuleetsansCRC,estalorsontenuedansRP.Le

debutdupaquetsetrouveal'adresse000hpourGP.Le pilotedoitpositionnerleontr^ole

detampon(registreACR)azeroavantdelireletampon.

Références

Documents relatifs

◊ remarque : l'inductance est plus grande avec le noyau de fer feuilleté (aimantation induite) ; elle est un peu plus faible avec un noyau de métal non feuilleté (champ magnétique

Remarque : `a chaque terminaison de processus, un signal Unix SIGCHLD est envoy´e au p`ere → S’il le capte, il peut lever le zombie avec waitpid (-1, NULL, WNOHANG);.. Mais que

fd descripteur ouvert en ´ecriture buf adresse base zone m´emoire count nombre d’octets ` a ´ecrire Renvoie -1 : erreur. > 0: nombre d’octets ´ecrits (6 count) 0 ssi count = 0

◮ Pour savoir si un descripteur est ´eligible, tester sa pr´esence dans la liste avec FD_ISSET. ◮ Si on boucle sur select, il faut chaque fois reconstruire

– protocole UDP pour SOCK_DGRAM – protocole TCP pour SOCK_STREAM Fermeture d’une socket : avec close.. Attachement ` a

Principe : le client se connecte, envoie une requˆete ; le serveur envoie une r´eponse puis d´econnecte le client. 1.1 : possibilit´e de maintenir

int regexec (const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);. preg expression compil´ee par regcomp string chaˆıne `

Cˆot´e client : ssh pour ouvrir un shell ou un tunnel sftp pour transf´erer des fichiers scp pour copier des fichiers Cˆot´e serveur : d´emon sshd. Installer sur