Многоцелевое расширение почты Интернет

         

A.1.Присвоение меток


Краткое изложение:

Отклик LSR на присылку FEC-метки от LDP-партнера может включать одну или более следующих операций:

  1. Передача партнеру LDP сообщения освобождения метки для FEC;
  2. Передача одному или более партнерам LDP сообщения присвоения метки для FEC,
  3. Инсталляция LSR вновь полученных меток для переадресации пакетов.

Контекст:

  1. LSR. LSR, обрабатывающий события.
  2. MsgSource. LDP-партнер, который посылает сообщение.
  3. FEC. Специфицированный в сообщении FEC.
  4. Метка. Специфицированная в сообщении метка.
  5. PrevAdvLabel. Метка для FEC, если имеется, ранее анонсированная вышестоящим партнером.
  6. StoredHopCount. Число шагов ранее записанное для FEC.
  7. RAttributes. Атрибуты, полученные с сообщением. Напр., число шагов, вектор пути.
  8. SAttributes должны быть включены в сообщение присвоения метки, если имеются, то пересылаются вышестоящим партнерам.

Алгоритм:



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 выполнить процедуру освобождения метки:
<
Для консервативного сохранения меток:

1. Goto LMp.32.

Для свободного сохранения меток:

1. Записать ассоциацию метки и FEC и RAttributes, полученные от MsgSource.

Goto LMp.33.

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 выполнить процедуру рассылки метки:
Для независимого управления в режиме Downstream Unsolicited ИЛИ

Для упорядоченного управления в режиме Downstream unsolicited

  1. Процедура исполнения

    Prepare_Label_Mapping_Attributes(Peer, FEC, RAttributes, SAttributes, IsPropagating, UnknownHopCount).



  2. Выполнить процедуру Send_Label (Peer, FEC, SAttributes). Если процедура терпит неудачу, продолжить итерацию для следующего партнера с LMp.17.


  3. Если нет ожидающих запросов для партнера goto LMp.30. (Смотри замечание 11.)


Для независимого управления в режиме Downstream On Demand ИЛИ

Для упорядоченного управления в режиме Downstream On Demand

  1. Продолжить итерацию через шаг 5 для каждого ожидающего запроса метки для FEC.


  2. Исполнить процедуру Prepare_Label_Mapping_Attributes(Peer, FEC, RAttributes, SAttributes, IsPropagating, UnknownHopCount)


  3. Исполнить процедуру Send_Label (Peer, FEC, SAttributes). Если процедура потерпела неудачу, продолжить итерацию для следующего партнера с LMp.17.


  4. Стереть запись ожидающего запроса.


  5. Завершить итерацию с шага 1.


  6. Goto LMp.30.


LMp.30 LSR выполняет процедуру Label Use:
Для немедленного использования ИЛИ

для использования, когда нет детектированных петель

  1. Продолжить итерацию через шаг 3 для каждой ассоциации метки и FEC, посланных ранее партнеру.


  2. Начать применение метки, полученной и посланной партеру, для переадресации пакетов.


  3. Завершить итерацию с шага 1.


  4. Goto LMp.31.


LMp.31 Завершить итерацию через LMp.17. Goto LMp.33.
LMp.32 Исполнить процедуру Send_Message (MsgSource, Label Release, FEC, Label).
LMp.33 DONE.
Замечания:

  1. Если LSR способен объединять метки, он должен получить как минимум одну ассоциацию метки и FEC для рассматриваемого LSP. В случае без объединения может быть получено много ассоциаций меток для FEC.


  2. Если LSR детектировал петлю и он ранее не получил от MsgSource ассоциацию метки и FEC, он просто освобождает метку.


  3. Соответствует ли метка, полученная в сообщении, какой-либо одной или более ассоциаций, идентифицированных на предыдущем шаге (LMp.4 или LMp.9)?


  4. Добровольная ассоциация с разными метками от одного и того же партнера будет пытаться установить коммутацию по меткам для нескольких путей, которая не поддерживается в данной версии LDP.


  5. Если метка не используется для целей коммутации, шаг LMp.7 не имеет значения.




  6. Если полученное сообщение присвоения метки, соответствует запросу шага LMp.1, тогда (по определению) LSR не получил ранее ассоциации метки и FEC. Если LSR объединяет полученные сверху метки для рассматриваемого LSP, тогда должна быть получена, по крайней мере, одна ассоциация. В случае без объединения, могут быть несколько ассоциаций меток для заданного FEC, по одной для каждого LSP.


  7. LMp.17 итерация включает MsgSource, для того чтобы обработать случай, когда LSR работает в режиме упорядоченного управления Downstream Unsolicited. Упорядоченное управление предотвращает анонсирование метки LSR для FEC, до тех пор пока не получит ассоциацию метки с FEC от узла следующего шага (MsgSource).


  8. Если LSR объединяет LSP, он может иметь ранее посланные ассоциации меток и FEC до одного или более партеров. Если LSR не может объединять метки, он может посылать ассоциации меток LSP по большей части до одного LSR.


  9. При этом тестировании рассматривается атрибут детектирования петель в векторе пути. Если полученный RAttributes включает в себя вектор пути, и ранее партнеру вектор пути не посылался, или если полученный вектор пути не согласуется с аналогичным вектором, посланным ранее партнеру, тогда атрибуты считаются несогласованными. Заметим, что от LSR не требуется запоминание полученного вектора пути, после того как он переслал вектор в сообщении ассоциации метки. Если LSR не запоминает вектор пути, у него нет способа проверить взаимную согласованность вновь полученного вектора пути. Это означает, что когда бы LSR ни получал сообщение, содержащее вектор пути, он должен всегда передавать его дальше.


  10. Шаги с LMp.22 по LMp.27 имеют дело с ситуацией, которая может иметь место, когда LSR использует независимое управление и получает метки со стороны нижерасположенного партнера, после этого он посылает эти сообщения вверх по течению. В этой ситуации LSR следует передавать любые изменения атрибутов, таких как число шагов, вверх. Если сконфигурировано детектирование петель, передаваемые атрибуты должны содержать вектор пути.


  11. LSR, работающий в режиме Downstream Unsolicited, должен обработать любое приходящее сообщение запроса метки. Если имеются отложенные запросы метки, переходим в режим Downstream on Demand, для того чтобы удовлетворить отложенные запросы.



Содержание раздела