Краткое изложение:
Отклик LSR на изменение следующего шага для FEC может включать в себя одну или более операций:
Контекст:
Алгоритм :
NH.1 | Получал ли LSR ранее от старого узла следующего шага и сохранил ли ассоциацию метка-FEC? Если нет, goto NH.6. |
NH.2 | Удалить метку из маршрутной таблицы. (Смотри замечание 1.) |
NH.3 | Использует ли LSR свободное сохранение меток? Если да, goto NH.6. |
NH.4 | Исполнить процедуру Send_Message(Old Next Hop, Label Release, OldLabel). |
NH.5 | Удалить ассоциацию метка-FEC, ранее полученную от старого узла следующего шага. |
NH.6 | Имеет ли LSR ожидающий запрос метки со старым значением следующего шага? Если нет, goto NH.10. |
NH.7 | Использует ли LSR консервативное сохранение меток? Если нет, goto NH.10. |
NH.8 | Исполнить процедуру Send_ Message(Old Next Hop, Label Abort Request, FEC, TLV), где TLV является ID запроса метки, который несет в себе ID ожидающего запроса метки. |
NH.9 | Записать запрос ликвидации метки для FEC как ожидающий для старого узла следующего шага. |
NH.10 | Имеется новый следующий шаг для данного FEC? Если нет, goto NH.16. |
NH.11 | Получил ли ранее LSR от нового узла следующего шага ассоциацию метка-FEC? Если нет, goto NH.13. |
NH.12 | Генерировать событие: Получена ассоциация метки от нового узла следующего шага. Goto NH.20. (Смотри замечание 2.) |
NH.13 | Использует ли LSR анонсирование Downstream on Demand? ИЛИ Использует ли узел следующего шага анонсирование Downstream on Demand? ИЛИ Использует ли LSR консервативное сохранение меток? Смотри замечание 3.) Если да, goto NH.14. Если нет, goto NH.20. |
NH.14 | Исполнить процедуру Prepare_Label_Request_Attributes(следующий шаг, FEC, CurAttributes, SAttributes) |
NH.15 | Исполнить процедуру Send_Label_Request(New Next Hop, FEC, SAttributes). (Смотри замечание 4.) Goto NH.20. |
NH.16 | Продолжить итерацию через NH.19 для следующего партнера |
NH.17 | Послал ли LSR ранее партнеру ассоциацию метка-FEC? Если нет, продолжить итерацию для следующего партера через NH.16. |
NH.18 | Исполнить процедуру Send_Label_Withdraw(Peer, FEC, Label previously sent to Peer). |
NH.19 | Завершить итерацию через NH.16. |
NH.20 | DONE |
Замечания: