6.3. Démultiplexage et champs de discriminateur
Étant donné que plusieurs sessions BFD peuvent être exécutées entre deux systèmes, il est nécessaire de disposer d'un mécanisme de démultiplexage (demultiplexing) des paquets BFD reçus vers la session appropriée.
Chaque système DOIT choisir une valeur de discriminateur opaque (discriminator) qui identifie chaque session, et qui DOIT être unique parmi toutes les sessions BFD sur le système. Le discriminateur local (local discriminator) est envoyé dans le champ My Discriminator du paquet de contrôle BFD, et est renvoyé en écho dans le champ Your Discriminator des paquets envoyés depuis l'extrémité distante.
Une fois que l'extrémité distante renvoie en écho le discriminateur local, tous les paquets reçus ultérieurement sont démultiplexés uniquement sur la base du champ Your Discriminator (ce qui signifie, entre autres, que le champ d'adresse source peut changer ou que l'interface sur laquelle les paquets sont reçus peut changer, mais les paquets seront toujours associés à la session appropriée).
La méthode de démultiplexage des paquets initiaux (dans lesquels Your Discriminator vaut zéro) dépend de l'application et sort donc du cadre de cette spécification.
Notez qu'il est permis pour un système de modifier son discriminateur pendant une session sans affecter l'état de la session, puisque seul ce système utilise son discriminateur à des fins de démultiplexage (en demandant à l'autre système de le renvoyer en écho). Les implications sur une implémentation de la modification de la valeur du discriminateur sortent du cadre de cette spécification.