Краткое изложение:
Когда LSR получает от партнера сообщение освобождения метки для FEC, он проверяет, удерживают ли другие партнеры освобожденную метку. Если никто этого не делает, LSR прекращает использование метки для переадресации, если он еще не сделал это, и, если LSR удерживает ассоциацию метки и FEC следующего шага, он освобождает метку.
Контекст:
Алгоритм:
| LRl.1 | Удалить MsgSource из записи партнеров, где хранится метка для заданного FEC. (Смотри замечание 1.) |
| LRl.2 | Соответствует ли сообщение сообщению отзыва метки для FEC, посланной ранее MsgSource? Если нет, goto LRl.4 |
| LRl.3 | Ликвидировать запись для отзываемой метки, посланную ранее MsgSource. |
| LRl.4 | Способен ли LSR объединять метки для этого FEC? Если нет, goto LRl.6. (Смотри замечание 2.) |
| LRl.5 | Имеет ли LSR метку, ранее анонсированную для этого FEC другим партнерам? Если да, goto LRl.10. |
| LRl.6 | Является ли LSR выходным для этого FEC? Если да, goto LRl.10 |
| LRl.7 | Имеется ли следующий шаг для FEC? И Имеет ли LSR, полученную ранее от узла следующего шага ассоциацию метка-FEC? Если нет, goto LRl.10. |
| LRl.8 | Сконфигурирован ли LSR для переадресации запросов освобождения метки? Если нет, goto LRl.10. (Смотри замечание 3.) |
| LRl.9 | Исполнить процедуру Send_Message (Next Hop, Label Release, FEC, Label from Next Hop). |
| LRl.10 | Удалить метку из MsgSourceи не использовать ее для переадресаций пакетов. |
| LRl.11 | Содержит ли кто-то из партнеров ассоциацию метки и FEC? Если да, goto LRl.13. |
| LRl.12 | Освободить метку. |
| LRl.13 | DONE. |
Замечания:
Рассылка меток будет работать нормально вне зависимости оттого, пересылаются или нет запросы освобождения меток. Решение передавать или нет такие запросы, зависит от таких факторов, как наличие достаточных ресурсов для меток в ОС, требования малой задержки при восстановлении виртуального маршрута, а также от схемы формирования LSP(со стороны входного или выходного узла).