| 107 | === Первоначальное присваивание VLAN ID пакетам === |
| 108 | |
| 109 | Каждому принятому портом коммутатора пакету присваивается идентификатор VLAN (VLAN ID, VID). Алгоритм этого присваивания зависит от типа принятого пакета и конфигурационных настроек коммутатора. Принятые пакеты классифицируется коммутатором по различным признакам. В зависимости от того, имеет ли пакет тэг 802.1q, коммутатор относит пакет к тэгированным (tagged) или нетэгированным (untagged). Тэгированные пакеты, в свою очередь, могут быть отнесены к тэгированным VLAN (VLAN-tagged), если VLAN ID тэга имеет ненулевое значение), или тэгированным приоритетом (priority-tagged), если VLAN ID равен нулю. |
| 110 | |
| 111 | Алгоритм первоначального присваивания VLAN ID принятому пакету показан на следующей диаграмме: |
| 112 | |
| 113 | {{{#!plantuml |
| 114 | @startuml |
| 115 | |
| 116 | start |
| 117 | :принят пакет; |
| 118 | if (Port mode == Access port?) then (да) |
| 119 | :VID = Default VLAN ID; |
| 120 | else (нет) |
| 121 | if(порту назначено\nприсваивать PVID\nвсем пакетам?) then (да) |
| 122 | :VID = Default VLAN ID; |
| 123 | else (нет) |
| 124 | if(пакет тегирован\nи VLAN ID != 0?) then (нет) |
| 125 | :VID = Default VLAN ID; |
| 126 | else (да) |
| 127 | :VID = VLAN ID принятого пакета; |
| 128 | endif |
| 129 | endif |
| 130 | endif |
| 131 | |
| 132 | if(порту разрешено назначать VID в\nзависимости от протокола?) then (да) |
| 133 | if(есть совпадение протокола?) then (да) |
| 134 | :VID = протокол VID; |
| 135 | else (нет) |
| 136 | endif |
| 137 | else (нет) |
| 138 | endif |
| 139 | |
| 140 | if(порту разрешены политики?) then (да) |
| 141 | if(выполняется условие правила\nполитики с переназначением VID?) then (да) |
| 142 | :VID = протокол VID; |
| 143 | else (нет) |
| 144 | endif |
| 145 | else (нет) |
| 146 | endif |
| 147 | stop |
| 148 | |
| 149 | @enduml |
| 150 | }}} |
| 151 | |
| 152 | |