Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 3.03 KB

File metadata and controls

34 lines (25 loc) · 3.03 KB

FE — Forwarding Engine

Как уже было описано выше, он реализует такие функции, как:

  • Запросы к CAM/TCAM
  • Трансформация Soft Table в Hard Table
  • Принятие решения о передаче пакета (ACL, полисинг)
  • Коммутация/Маршрутизация
  • Маркировка приоритетов
  • Зеркалирование
  • Обнаружение протокольных пакетов
  • Обработка сигналов/пакетов от CPU.

Далее ВНИМАНИЕ! Это один из наиболее важных моментов всей статьи!

Во-первых, FE делится на Ingress FE и Egress FE. Первый обрабатывает соответственно пакеты на входном тракте, второй — на выходном.
С одной стороны это разделение терминологическое — пакет пришёл на Ingress FE и далее должен быть отправлен на Egress FE, возможно, другой платы.
С другой, разделение — зачастую вполне физическое: внутри одного FE чипа живут эти две сущности: Ingress и Egress. Это и логично — ведь плата может быть как точкой входа, так и точкой выхода.
Во-вторых, именно входной FE определяет всю дальнейшую судьбу пакета в пределах узла:

  • Вид будущих заголовков
  • Приоритет внутри узла и при передаче вовне
  • Выходной FE и интерфейс
  • Какой именно из физических членов LAG или ECMP

* с небольшой оговоркой, что выходной тракт всё-таки может ещё произвести репликацию пакета или зарезать его из-за переполненного буфера.
В-третьих, FE должен идентифицировать протокольные пакеты в транзитном трафике и передавать их на CPU.
Соответственно и получать пакеты (или инструкции) от CPU — тоже его работа.

Рядом с FE находятся CAM, TCAM и RAM, куда FE обращается в поиске выходного интерфейса и проверки ACL.
Они хранят Hard Tables.

Кроме того Ingress FE производит репликацию BUM трафика — он рассылает по одной копии пакета на каждый Egress FE. А Egress FE уже делает столько копий, во сколько интерфейсов нужно отправить