Bonjour,
je dois implémenter (enfin essayer) un protocole donc pour commencer, je crée une structure qui représente donc le protocole en lui-même... Par exemple:
Donc lorsque mes champs du protocole sont mutiples de 8, ça me pose pas de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 struct ip6_mh_opt_fid { uint8_t ip6mofid_type; uint8_t ip6mofid_len; uint16_t ip6mofid_flags; uint8_t ip6mofid_PRI; uint8_t FID; }
Le souci vient que j'ai des champs qui sont donc non multiples... je ne sais pas trop comment gérer ça. Je crois pas que les champs de bits soient la bonne solution car en parcourant un peu dans le noyau Linux, j'en ai pas croisé pour implémenter des protocoles. J'ai l'impression que les gaillards s'arrangent toujours pour avoir un nombre multiple de 8... alors bon, je vois un petit peu un début de solution, en regroupant par exemple plusieurs champs pour avoir un multiple de 8. Oui mais bon, je fais comment pour bien affecter le tout et retrouver mes petits? les opérateurs bits à bits peuvent m'aider.
Mais je vois toujours pas comment je me débrouille dans un cas par exemple ou j'ai un champ qui fait 6 bits, que je regroupe avec deux autres de 1 bit pour faire un multiple de 8 pour ensuite affecter, puis lire ces champs...
Merci d'avance
Partager