bonjour,
je dispose d'une carte (MPC8560) basé sur le processeur powerquicc3, je dois l'utiliser pour faire un routage des flux rtp,rtcp. j'ai embarqué un noyau linux dans la carte mais le but est d'utiliser la puissance du processeur pour faire le routage, je demande une solution étant donné que le pross est optimisé réseaux.
merci.
# Pour commencer
Posté par TheBreton . Évalué à 1.
La seul chose que je peut repondre c'est que les registres de ton proc sont decris a l'adresse suivante:
http://www.freescale.com/files/32bit/doc/data_sheet/MPC8560E(...)
maintenant tu veut de l'aide pour quoi plus precisement ?
[^] # Re: Pour commencer
Posté par nicodache . Évalué à -1.
c'est sur que tout le monde a un powerquicc3 chez soi, raison pour laquelle sa demande est trop vague pour nous tous...
enfin, perso je connais pas, et si je répond pas, c'est justement pour ca, pas parce que sa question serait trop peu précise :)
[^] # Re: Pour commencer
Posté par TheBreton . Évalué à 1.
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?co(...)
maintenant je ne connais pas non plus la bete dans les details, mais si la question etait comment ecrire a l'adresse physique XXXX pour activer tel ou tel perif la je pourrais répondre.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
[^] # Re: Pour commencer
Posté par TheBreton . Évalué à 2.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
[^] # Re: Pour commencer
Posté par TheBreton . Évalué à 2.
request_region puis inb,inw,inl ou outb,outw,outl
tous les details sont ici
http://lwn.net/images/pdf/LDD3/ch09.pdf
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
en fait quant jutilise les fonctions inw ou ouw etc mon compilateur m'affiche:
/opt/elinos/cdk/ppc/60x/glibc-2.3.2/bin/ppc_60x-gcc -c main.c -o main.o
/opt/elinos/cdk/ppc/60x/glibc-2.3.2/bin/ppc_60x-gcc -o LE lect.o main.o
lect.o(.text+0x38): In function `manip':
: référence indéfinie vers « inw »
lect.o(.text+0x58): In function `manip':
: référence indéfinie vers « inw »
main.o(.text+0x14): In function `main':
: référence indéfinie vers « lect »
collect2: ld a retourné 1 code d'état d'exécution
make: *** [LE] Erreur 1
Etant donné que ces fonctions d'ecriture/lecture sont definies dans l'API du système je ne vois pas d'ou vient le problème.
/opt/elinos/cdk/ppc/60x/glibc-2.3.2/bin/ppc_60x-gcc :est le path pour gnerer de l'executable pour ppc.
[^] # Re: Pour commencer
Posté par galactikboulay . Évalué à 2.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
je veux dire comment les rendre exécutable car mes modules doivent m'affichier des choses .
[^] # Re: Pour commencer
Posté par galactikboulay . Évalué à 2.
Ta carte MPC8560, c'est une carte faite en interne par ta boite ou elle est disponible ailleurs ?
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
[^] # Re: Pour commencer
Posté par galactikboulay . Évalué à 2.
Il faut voir pour ce contrôleur ce dont tu disposes comme accélération hardware. En général, tu as le checksumming IP et TCP/UDP en hardware. Après, pour router potablement entre les 2 cartes, je te conseille d'utiliser les mécanismes scatter/gather, ça évite de recopier les données quand tu traites les paquets (en gros tu t'arranges pour ne modifier que les entêtes). Il faut voir en détail si le noyau Linux gère ça correctement, et le driver Ethernet aussi.
Après, je pense pas que le CPU soit super optimisé réseau dans le sens "traitement des paquets". Il est axé réseau parce qu'il embarque pas mal d'interfaces genre Ethernet, ATM, etc, mais c'est tout. Ce qui pourrait t'être utile dans ton cas serait les fonctions DMA, à part ça je vois pas (cela dit, je suis pas un expert en hardware).
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
[^] # Re: Pour commencer
Posté par galactikboulay . Évalué à 2.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
finalement j'ai reussi à inserer mes modules dans le noyau automatiquement, mais ça veut dire quoi exatement checksumming IP et TCP/UDP en hardware aue tu m'a parlé ?
Selon toi il serait plus judicieux de faire mon routage entre les deux eth giga en module noyau.
[^] # Re: Pour commencer
Posté par galactikboulay . Évalué à 2.
Actuellement tu routes comment avec tes 2 cartes ? Tu as des pbs de performance ?
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
vendredi je n'ai pas continué la discution car je devais prendre un train.
En fait pour l'instant j'ai mes algo sur papier mais je route ainsi: une règle represente une structure de données, je construit une table de Hash et je fait en sorte eth0 intercepte tout ce qui arrive , change l'entete (@Ip,Port) et route le paquet vers eth1. mais j'ai decouvert que les controleurs possèdent des tables hash et je ne sais pas si cela peut m'aider vue que ces tables de 48 bits sont intégrés. à l'arrivé d'un paquet je calcule la clé avec @desti etport udp et je cherche la règle à appliquer.
mes controleurs sont referencés TSEC1 et TSEC2 (Tree -Speed Ethernet Controller) 3UCII/D9BHT
//structre pour un context donné
typedef struct {
/*Mandatory parameters
unsigned int callID;
unsigned int mediaSessionID;*/
unsigned int addressIn;
unsigned short rtpPortIn;
unsigned short rtcpPortIn;
unsigned int addressOut;
unsigned short rtpPortOut;
unsigned short rtcpPortOut;
/*unsigned char mediaType; // AUDIO or VIDEO
unsigned char direction; // CALLING or CALLED
Parameters that could be unknown
unsigned int sourceAddress;
unsigned short sourceRtpPort;
unsigned short sourceRtcpPort;*/
unsigned int destAddress;
unsigned short destRtpPort;
unsigned short destRtcpPort;
} stMSContext;
//structure decrivant les parametres pour modidier un contexte
typedef struct {
unsigned int contextID;
unsigned int destAddress;
unsigned short destRtpPort;
unsigned short destRtcpPort;
} stContextUpdate;
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
le controleur gianfar de motorolla ,je ne sais toujours pas ce que exactement le driver de mes eth giga. C'est des carte réseaux gianfar et je detiens le code du driver mais impossible de savoir ce que fait exactement ces controleurs giga. je demande de l'aide si quelqu'un a déja travaillé sur ce driver.
merci.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
si je ne suis pas claire je peux encore preciser.
[^] # En 3 points
Posté par TheBreton . Évalué à 1.
2) AMHA ce processeur doit disposer d'une fonction hardware de copie d'un packet recu sur un canal eth vers un autre eth (DMA direct) pour activer une tel fonction il te faut lire la doc du proc.
3) le noyeau est le meuilleur endroit pour faire le traitement que tu veut faire, force le passage en user-space risque de te faire perdre ton le bonus apporter par les fonctions specifique du processeurs. Pourquoi ne pas scinder en deux ce que tu veut faire? un modules noyeau qui fait le routage et une partie user-space qui envoie la configuration de route au module noyeau.
[^] # Re: Pour commencer
Posté par galactikboulay . Évalué à 2.
http://www.freescale.com/files/32bit/doc/ref_manual/MPC8560R(...)
Près de 2000 pages de doc, à mon avis, c'est très complet.
[^] # Re: Pour commencer
Posté par ham333 . Évalué à 1.
j'ai besoin d'aide, je n'arrive toujours pas à determinier les fonctions accelerateur hardware de mes controleurs giabit de la carte MPCa8560.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.