Краткое изложение:
Отклик LSR на присылку FEC-метки от LDP-партнера может включать одну или более следующих операций:
Контекст:
Алгоритм:
| LMp.1 | Соответствует ли полученная метка запросу метки FEC, посланному ранее MsgSource. Если нет, goto LMp.3. |
| LMp.2 | Стереть запись запроса метки FEC. |
| LMp.3 | Выполнить процедуру Check_Received_Attributes (MsgSource, LabelMapping, RAttributes). Если не зарегистрировано петель, goto LMp.9. |
| LMp.4 | Получил ли LSR от MsgSource метку для FEC? (Смотри замечание 1.) Если нет, goto LMp.8. (Смотри замечание 2.) |
| LMp.5 | Соответствует ли требованиям метка, полученная ранее от MsgSource (т.e., метка полученная в сообщении)? (Смотри замечание 3) Если нет, goto LMp.8. (Смотри замечание 4.) |
| LMp.6 | Стереть ассоциацию метки для FEC, полученную ранее от MsgSource. |
| LMp.7 | Удалить метку из таблицы маршрутизации. (Смотри замечание 5.) Goto LMp.33. |
| LMp.8 | Исполнить процедуру Send_Message (MsgSource, Label Release, FEC, Label, Loop Detected Status code). Goto LMp.33. |
| LMp.9 | Получил ли LSR ранее ассоциацию метки и FEC от MsgSource для рассматриваемого LSP? (Смотри замечание 6.) Если нет, goto LMp.11. |
| LMp.10 | Соответствует ли метка, полученная ранее от MsgSource, метке в сообщении? (Смотри замечание 3.) Если нет, goto LMp.32. (Смотри замечание 4.) |
| LMp.11 | Определить следующий шаг для FEC. |
| LMp.12 | Является ли MsgSource следующим шагом для FEC? Если да, goto LMp.14. |
| LMp.13 | LSR выполнить процедуру освобождения метки: |
| LMp.14 | Является ли LSR входным для FEC? Если нет, goto LMp.16. |
| LMp.15 | Начать использование метки для переадресации пакетов. |
| LMp.16 | Запись ассоциации метка-FEC и RAttributes были получены от MsgSource. |
| LMp.17 | Продолжить итерацию через LMp.31 для каждого партнера. (Смотри замечание 7). |
| LMp.18 | Послал ли ранее LSR ассоциацию метки и FEC партнерам LSP? (Смотри замечание 8.) Если да, goto LMp.22. |
| LMp.19 | Используется ли LSR режим упорядоченного управления рассылкой меток Downstream Unsolicited? Если нет, goto LMp.28. |
| LMp.20 | Исполнить процедуру Prepare_Label_Mapping_Attributes Peer,FEC,RAttributes,SAttributes, IsPropagating, StoredHopCount). |
| LMp.21 | Исполнить процедуру Send_Message (Peer, Label Mapping, FEC, PrevAdvLabel, SAttributes). Goto LMp.28 |
| LMp.22 | Продолжить итерацию через LMp.27 для каждой ассоциации метки и FEC, посланной ранее партнеру. |
| LMp.23 | Являются ли RAttributes в полученной ассоциации метки взаимно согласующимися с ранее посланными партнеру? Если да, продолжить итерацию через LMp.22 для следующей метки. (Смотри замечание 9.) |
| LMp.24 | Выполнить процедуру Prepare_Label_Mapping_Attributes(Peer, FEC, RAttributes, SAttributes, IsPropagating, StoredHopCount). |
| LMp.25 | Исполнить процедуру Send_Message(Peer, Label Mapping, FEC, PrevAdvLabel, SAttributes). (Смотри замечание 10.) |
| LMp.26 | Обновить запись ассоциации метки с FEC, посланную ранее партнеру, включить новые атрибуты. |
| LMp.27 | Завершить итерацию через LMp.22. |
| LMp.28 | Имеет ли LSR какие-либо запросы метки для FEC от партнера, помеченные как ожидающие? Если нет, goto LMp.30. |
| LMp.29 | LSR выполнить процедуру рассылки метки: |
| LMp.30 | LSR выполняет процедуру Label Use: |
| LMp.31 | Завершить итерацию через LMp.17. Goto LMp.33. |
| LMp.32 | Исполнить процедуру Send_Message (MsgSource, Label Release, FEC, Label). |
| LMp.33 | DONE. |