Bonjour,
je suis entrain de développer un protocol RTP sur une FPGA, mais j'ai un gros problème de padding.
En je manipule uniquement des valeurs en 32bits (big-endian) donc cela devrait être facile pour envoyer un paquet ... le problème c'est qu'il y a un d'ingénieur qui nous a fait l'encapsulation Ethernet pas aligné sur 32bits.
En effet on a mac destination (6 bytes) + mac source (6 bytes) + type (2 bytes) et directement après commence le protocol IP (si type=0x8000).
Donc on est aligné sur 14 bytes et non sur 16 bytes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 ------------------------------------------- || 00...07 | 08...15 | 16...23 | 24...32 || ------------------------------------------- || eha_dst[0-3] || ------------------------------------------- || eha_dst[4-5] | eha_src[0-1] || ------------------------------------------- || eha_src[2-5] || ------------------------------------------- || type | IpHeader::vIHL || -------------------------------------------
Pour l'instant je suis obliger d'écrire les données IP/UDP/RTP dans un buffer puis de les copié en shiftant de 16 bits. Cependant cette operation n'est pas performante ... donc si qqun aurait une idée.
Partager