Caractéristiques d'enregistrement du format de paquet

Le pilote dlpi prend en charge les interfaces réseau CDLI (Common Data Link Interface) génériques en permettant à l'utilisateur de spécifier le format de paquet particulier nécessaire pour le support de transmission sur lequel le flux est créé.

A l'aide du message Streams M_IOCTL ou M_CTL , l'utilisateur peut spécifier le format de paquet. Si aucun format de paquet n'est spécifié, la valeur par défaut est NS_PROTO.

L'utilisateur DLPI spécifie le format de paquet via l'ioctl STREAMS I_STR . L'utilisateur DLPI peut utiliser une spécification de format de paquet par flux. Ce format de paquet doit être spécifié après la liaison et avant la liaison. Sinon, une erreur est générée.

Les formats de paquet définis dans /usr/include/sys/cdli.h sont les suivants:

Article Descriptif
NS_PROTO Supprimez tous les en-têtes de niveau lien. Le protocole SNAP (Sub-Network Access Protocol) n'est pas utilisé.
NS_PROTO_SNAP Supprimez tous les en-têtes de niveau lien, y compris SNAP.
NS_INCLUDE_LLC Laissez les en-têtes LLC en place.
NS_INCLUDE_MAC Ne supprimez aucun en-tête.

Les formats de paquet définis dans le fichier /usr/include/sys/dlpi_aix.h sont les suivants:

Article Descriptif
NS_PROTO_DL_COMPAT Utilisez le format d'adresse DLPI AIX® 3.2.5 .
NS_PROTO_DL_DONTCARE Aucune adresse n'est présente dans DL_UNITDATA_IND. Pour la primitive DL_UNITDATA_IND , DLPI fournit les informations d'en-tête dans la structure dl_unitdata_ind_t .
Tous les formats de paquet à l'exception de NS_INCLUDE_MAC acceptent les adresses en aval sous la forme suivante:

mac_addr.dsap[.snap].  

Individuellement, les formats de paquet ont les exigences suivantes:

Article Descriptif
NS_PROTO ou NS_PROTO_SNAP Le contrôle d'accès moyen (MAC) et le contrôle de liaison logique (LLC) sont inclus dans l'en-tête DLPI, et la partie données du message ne contient que des données. L'en-tête NS_PROTO n'inclut pas SNAP, contrairement à l'en-tête NS_PROTO_SNAP . Les deux formats de paquet présentent les adresses de destination en tant quemac_addret les adresses source en tant quemac_addr.ssap.dsap.ctrl[.snap].

Pour la primitive DL_UNITDATA_REQ , l'utilisateur DLPI doit fournir l'adresse de destination et un point d'accès au service de destination (DSAP) facultatif dans l'en-tête DLPI. Si l'utilisateur DLPI n'indique pas le DSAP, le DSAP indiqué au moment de la liaison est utilisé.

NS_PROTO_DONTCARE Le pilote dlpi ne place aucune adresse dans DL_UNITDATA_INDen amont. Les adresses sont toujours requises sur DL_UNITDATA_REQ.
NS_PROTO_DL_COMPAT Le pilote dlpi utilise le format d'adresse utilisé dans le pilote dlpi AIX® 3.2.5 , qui est identique en amont et en aval. Les adresses source et de destination sont présentées commemac_addr.dsap[.snap].
NS_INCLUDE_LLC L'en-tête DLPI contient uniquement les adresses de destination et source. Seule la LLC est placée dans la partie M_DATA du message DL_UNITDATA_IND . Les adresses source et de destination sont présentées sous la formemac_addr.

Pour la primitive DL_UNITDATA_REQ , l'utilisateur DLPI doit fournir l'adresse de destination et un DSAP facultatif dans l'en-tête DLPI. Si l'utilisateur DLPI n'indique pas le DSAP, le DSAP indiqué au moment de la liaison est utilisé.

NS_INCLUDE_MAC Les adresses MAC et LLC sont toutes deux placées dans la partie données du message. Ainsi, l'utilisateur DLPI doit avoir connaissance de l'en-tête MAC et de l'architecture LLC pour une interface spécifique permettant de récupérer l'en-tête MAC et la LLC à partir de la partie de données du message. Ce format définit le flux en mode brut, qui ne traite pas les messages entrants ou sortants.

Pour la primitive DL_UNITDATA_REQ , l'utilisateur DLPI doit fournir l'adresse de destination et un DSAP facultatif dans l'en-tête DLPI. Si l'utilisateur DLPI n'indique pas le DSAP, le DSAP indiqué au moment de la liaison est utilisé.

Les messages en aval ne nécessitent pas l'en-tête DL_UNITDATA_REQ et doivent être reçus en tant que messages M_DATA . Les messages en aval doivent contenir un en-tête MAC complet, qui sera copié sur le support sans traduction supplémentaire.