J'essaye de créer une simulation de logiciel sur une machine d'Ubuntu GNU/Linux qui fonctionnera comme PPPoE. Je voudrais que ce simulateur prenne les paquets sortant, dépouille l'en-tête d'Ethernet, insère les drapeaux de PPP (7E, FF, 03, 00, et 21) et place les informations de couche d'IP dans le paquet de PPP. J'ai des problèmes avec le FCS qui va après les données. D'après ce que je peux dire, le modem cellulaire que j'utilise a un FCS de 2 octets utilisant la méthode CRC16-CCITT. J'ai trouvé plusieurs logiciels qui vont calculer cette somme de contrôle, mais aucun d'entre eux ne produit ce qui sort de la ligne série (j'ai une ligne de série "sniffer" qui me montre tout ce que le modem est en train d'envoyer).Comment créer un FCS pour les paquets PPP?
J'ai examiné la source de pppd et le noyau Linux lui-même, et je peux voir que les deux ont une méthode d'ajout d'un FCS aux données. Cela semble assez difficile à mettre en œuvre, car je n'ai aucune expérience dans le kernel hacking. Quelqu'un peut-il trouver un moyen simple (de préférence en Python) de calculer un FCS correspondant à celui produit par le noyau?
Merci.
P.S. Si quelqu'un le veut, je peux ajouter un échantillon de la sortie de données que je reçois au modem série.