• [^] # Re: TSO et LRO

    Posté par . En réponse à la dépêche Sortie de FreeBSD 7.0 et 6.3. Évalué à 7.

    > et si tu regardes là

    Je vois un driver qui agrege en software...

    Tout se passe dans xge_hal_lro_process_rx():
    La carte vient de déposer un nouveau paquet en mémoire, le driver appelle d'abord__hal_lro_capable() pour savoir si on peut agreger ce paquet, puis __hal_get_lro_session() pour recuperer/creer la session de LRO, puis __hal_append_lro() pour accumuler le paquet dans cette session. Il n'y aucune intervention de la carte dans tout ca.

    Et comme tu peux le remarquer, le code n'est pas très compliqué. Il s'agit grosso-modo d'ajuster les checksums, longueur et numeros de sequence dans les headers IP et TCP, et de chainer les buffers de donnees.

    Tu veux peut-être aussi que je t'explique comment LRO marche dans le driver que je maintiens dans Linux ? :)