команда 1: classify table buckets <buckets number> mask <parametrs>
команда 2: classify session table-index <table index> pipe <pipe number> queue <queue number> match <parametrs>
команда 3: set dpdk hqos profile <interface name> add rate <total pipe rate in kbps> buffer <buffer size in bytes> tc <tc0 rate> <tc1 rate> <tc2 rate> <tc3 rate> be <best effort total rate> <queue0 weight><queue1 weight> <queue2 weight> <queue3 weight>
команда 4: set dpdk hqos pipe cnt <intreface name> <pipe_count>
команда 5: set dpdk hqos pipe profile pipe <pipe number> profile <num profile>
команда 6: set dpdk hqos table <intreface name> <table index>
команда 7: set dpdk hqos default pipe queue <intreface name> <pipe number> <queue number>
команда 8: create dpdk hqos <intreface name>
команда 8а: create dpdk hqos <intreface name> rate <link rate> mtu <MTU>
команда 9: set dpdk hqos state <intreface name> up
Описание команды представлено ниже в таблице:
Номер команды | Описание |
Команда 1 | С помощью команды описана таблица с правилами приоритезации. Для таблицы задано количества правил с помощью параметра “buckets number”. После ключевого слова “mask” необходимо задать параметры таблицы, которые определяют поля и заголовки сетевого пакета, с которыми сможет работать заданная таблица. |
Команда 2 | С помощью команды описано правило с точным указанием полей и заголовков, которые необходимо захватывать в сетевом трафика для дальнейшего перенаправления в соответствующую очередь. Параметр “table index” определяет номер таблицы, которая была создана с помощью “команды 1”, т.е. правило привязывается к конкретной таблице. Параметры правила должны соответствовать маске, которую мы указали для таблицы. Параметр “pipe number” отвечает за номер конвейера, в который будет перенаправляться трафик, а “queue number” за номер очереди в этом конвейере. После ключевого слова “match” необходимо задать параметры правила, которые определяют поля и заголовки сетевого пакета, с которыми сможет работать заданное правило. Правил в таблице может быть любое количество. |
Команда 3 | С помощью команды описан профиль, которые можно будет использовать для работы с трафиком. Параметр “interface name” определяет сетевой интерфейс, для которого создается профиль. Параметр “total pipe rate in kbps” определяет максимальную скорость для профиля, которая не должна превышать скорость физического интерфейса. Параметр “buffer size in bytes” определяет потенциальную дополнительную нагрузку, которая может возникнуть в процессе работы. Параметр “tcX rate” определяет скорость для каждой из 4-х приоритетных очередей. Параметр “best effort total rate” определяет общую скорость для дополнительных очередей с разбивкой в процентах для каждой очереди “queueX weight”. Профилей может быть несколько. Для каждого конвейера необходимо использовать профиль. Это может быть один и тот же профиль или разные профили для каждого из конвейеров. |
Команда 4 | С помощью команды на сетевом интерфейсе “interface name” создается заданное количество конвейеров “pipe_count”. Количество конвейеров должно соответствовать степени числа 2, при этом нет необходимости использовать все конвейеры, которые были созданы. |
Команда 5 | С помощью команды происходит закрепление заданного профиля <num profile> за конкретным конвейером <pipe number>. Для всех конвейеров необходимо задать профиль вне зависимости от того, будет он использоваться или нет. |
Команда 6 | С помощью команды к сетевому интерфейсу “interface name” происходит привязка таблицы “table index” с правилами приоритезации. |
Команда 7 | С помощью команды задается номер конвейера и номер очереди по умолчанию. В эту очередь будет попадать трафик, который не подошел ни под одно из правил. |
Команда 8 | С помощью команды создаем настройку на сетевом интерфейсе “interface name”. |
Команда 8a | С помощью команды создаем настройку на сетевом интерфейсе “interface name” с явным указанием пропускной способности интерфейса и значения MTU. |
Команда 9 | С помощью команды включаем механизм приоритезации на сетевом интерфейсе “interface name”. |
команда 1: show dpdk hqos <interface name>
vpp# show dpdk hqos GigabitEthernet3/0/1
HQoS state: up
Pipes initialized: 1
Profiles initialized: 1
Total rate: 1000000
MTU: 9000
Classification table index: 0
Default pipe 0 queue 7
команда 2: show dpdk hqos profile <interface name>
vpp# show dpdk hqos profile GigabitEthernet3/0/1
id|total rate|buffer size| BE weights
----+----------+-----------+---------------
0| 1000000| 12000|25% 25% 25% 25%
----+----------+-----------+---------------
команда 3: show dpdk hqos pipe <interface name>
pipe id| profile id|
--------+-----------+
0| 0|
команда 4: show dpdk hqos pipe counters <interface name> <pipe number>
#| in| drop
--+----------+----------
0| 0| 0
--+----------+----------
1| 0| 0
--+----------+----------
2| 29265| 0
--+----------+----------
3| 0| 0
--+----------+----------
4| 0| 0
--+----------+----------
5| 0| 0
--+----------+----------
6| 0| 0
--+----------+----------
7| 8| 0
--+----------+----------
команда 5: clear dpdk hqos pipe counters <interface name> <pipe id>
Описание команды представлено ниже в таблице:
Номер команды | Описание |
Команда 1 | С помощью команды можно посмотреть общую информацию о механизме приоритезации: состоянии, количестве доступных конвейеров, количестве заданных профилей, общая пропускная способность конвейера, значение параметра MTU, номер таблицы и значение по умолчанию конвейера и очереди. |
Команда 2 | С помощью команды можно посмотреть информацию о профиле. |
Команда 3 | С помощью команды можно посмотреть информацию о конвейере и номере профиля, который был назначен для заданного конвейера. |
Команда 4 | С помощью команды можно посмотреть информацию о количестве сетевых пакетов, которые были перенаправлены в каждую из очередей, и количество сетевых пакетов, которые были отброшены. |
Команда 5 | С помощью команды можно очистить счетчики. |
Легенда: В сегменте сети настроено 8 vlan. Необходимо реализовать политики приоритезации для каждого из vlanid согласно данным в таблице ниже. Скорость для каждой из очередей и соотношение vlanid - приоритет взяты для примера. В каждом конкретном случае при решении конкретной задачи эти значения могут отличаться.
Номер | vlan_id | Приоритет | Скорость |
1 | 100 | prio 0 | 50 Мбит/с |
2 | 200 | prio 1 | 250 Мбит/с |
3 | 300 | prio 2 | 150 Мбит/с |
4 | 400 | prio 3 | 150 Мбит/с |
5 | 500 | prio 4 | 400 Мбит/с (40%) |
6 | 600 | prio 5 | 400 Мбит/с (20%) |
7 | 700 | prio 6 | 400 Мбит/с (20%) |
8 | 800 | prio 7 | 400 Мбит/с (20%) |
На физическом интерфейсе “GigabitEthernet7/0/0” с пропускной способностью “1 Гбит/с” необходимо реализовать политики приоритезации трафика согласно таблице.
vpp# classify table buckets 8 mask l2 tag1 ---> Таблица для правил с определенной маской
vpp# classify session table-index 0 pipe 0 queue 0 match l2 tag1 100 -----|
vpp# classify session table-index 0 pipe 0 queue 1 match l2 tag1 200 |
vpp# classify session table-index 0 pipe 0 queue 2 match l2 tag1 300 |
vpp# classify session table-index 0 pipe 0 queue 3 match l2 tag1 400 | ---> Правила для захвата трафика
vpp# classify session table-index 0 pipe 0 queue 4 match l2 tag1 500 |
vpp# classify session table-index 0 pipe 0 queue 5 match l2 tag1 600 |
vpp# classify session table-index 0 pipe 0 queue 6 match l2 tag1 700 |
vpp# classify session table-index 0 pipe 0 queue 7 match l2 tag1 800 -----|
vpp#
vpp# set dpdk hqos profile GigabitEthernet7/0/0 add rate 1000000 buffer 15000 tc 50000 250000 150000 150000 be 400000 40 20 20 20
New pipe profile added: -----|
id 0 |total rate 1000000 |bucket size 15000 |
------------------------------------------------------- |
TC0 rate 50000 | ---> Профиль со скоростями
TC1 rate 250000 |
TC2 rate 150000 |
TC3 rate 150000 |
BE rate 400000 [q0 40% q1 20% q2 20% q3 20%] -----|
vpp#
vpp# set dpdk hqos pipe cnt GigabitEthernet7/0/0 2 -----| ---> Создание двух конвейеров
new 2 pipes initialized with none profile -----|
vpp#
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 0 profile 0 -----|
Profile 0 has been successfully set for pipe 0 | ---> Прикрепление профиля к конвейеру 1 и 2
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 1 profile 0 |
Profile 0 has been successfully set for pipe 1 -----|
vpp#
vpp# set dpdk hqos table GigabitEthernet7/0/0 0 -----| ---> Прикрепление таблицы к сетевому интерфейсу
Classification table set to 0 -----|
vpp#
vpp# create dpdk hqos GigabitEthernet7/0/0
DPDK HQOS sched port created
vpp#
vpp# set dpdk hqos state GigabitEthernet7/0/0 up
The DPDK HQoS new state is up
vpp#
vpp# show dpdk hqos profile GigabitEthernet7/0/0 -----|
id|total rate|buffer size| BE weights |
----|----------|-----------|--------------- | ---> Просмотр информации о профиле на интерфейсе
0| 1000000| 15000|40% 20% 20% 20% |
----|----------|-----------|--------------- -----|
vpp# show dpdk hqos pipe GigabitEthernet7/0/0 -----|
pipe id| profile id| |
-------------------- | ---> Просмотр информации о конвейерах и профилях
0| 0| |
1| 0| -----|
vpp#
vpp# show dpdk hqos pipe counters GigabitEthernet7/0/0 0 -----|
#| in| drop |
--+----------+---------- |
0| 0| 0 |
--+----------+---------- |
1| 0| 0 |
--+----------+---------- |
2| 0| 0 |
--+----------+---------- | ---> Просмотр информации о счетчиках для каждой из очереди
3| 0| 0 | для конвейера номер 0
--+----------+---------- |
4| 0| 0 |
--+----------+---------- |
5| 0| 0 |
--+----------+---------- |
6| 0| 0 |
--+----------+---------- |
7| 0| 0 |
--+----------+---------- -----|
Легенда: В сегменте сети происходит сетевой обмен между устройствами. Необходимо реализовать политики приоритезации для каждого из MAC адреса источника согласно данным в таблице ниже. Скорость для каждой из очередей и соотношение MAC адреса - приоритет взяты для примера. В каждом конкретном случае при решении конкретной задачи эти значения могут отличаться.
Номер | Source MAC | Приоритет | Скорость |
1 | 00:90:0b:6a:c1:81 | prio 0 | 100 Мбит/с |
2 | 00:90:0b:6a:c1:82 | prio 1 | 300 Мбит/с |
3 | 00:90:0b:6a:c1:83 | prio 2 | 50 Мбит/с |
4 | 00:90:0b:6a:c1:84 | prio 3 | 50 Мбит/с |
5 | 00:90:0b:6a:c1:85 | prio 4 | 500 Мбит/с (15%) |
6 | 00:90:0b:6a:c1:86 | prio 5 | 500 Мбит/с (25%) |
7 | 00:90:0b:6a:c1:87 | prio 6 | 500 Мбит/с (50%) |
8 | 00:90:0b:6a:c1:88 | prio 7 | 500 Мбит/с (10%) |
На физическом интерфейсе “GigabitEthernet7/0/0” с пропускной способностью “1 Гбит/с” необходимо реализовать политики приоритезации трафика согласно таблице.
vpp# classify table buckets 1 mask l2 src ---> Таблица для правил с определенной маской
vpp# classify session table-index 0 pipe 0 queue 0 match l2 src 00:90:0b:6a:c1:81 -----|
vpp# classify session table-index 0 pipe 0 queue 1 match l2 src 00:90:0b:6a:c1:82 |
vpp# classify session table-index 0 pipe 0 queue 2 match l2 src 00:90:0b:6a:c1:83 |
vpp# classify session table-index 0 pipe 0 queue 3 match l2 src 00:90:0b:6a:c1:84 | ---> Правила для захвата трафика
vpp# classify session table-index 0 pipe 0 queue 4 match l2 src 00:90:0b:6a:c1:85 |
vpp# classify session table-index 0 pipe 0 queue 5 match l2 src 00:90:0b:6a:c1:86 |
vpp# classify session table-index 0 pipe 0 queue 6 match l2 src 00:90:0b:6a:c1:87 |
vpp# classify session table-index 0 pipe 0 queue 7 match l2 src 00:90:0b:6a:c1:88 -----|
vpp#
vpp# set dpdk hqos profile GigabitEthernet7/0/0 add rate 1000000 buffer 15000 tc 50000 300000 50000 50000 be 500000 15 25 50 10
New pipe profile added: -----|
id 0 |total rate 1000000 |bucket size 15000 |
------------------------------------------------------- |
TC0 rate 50000 | ---> Профиль со скоростями
TC1 rate 300000 |
TC2 rate 50000 |
TC3 rate 50000 |
BE rate 500000 [q0 15% q1 25% q2 50% q3 10%] -----|
vpp#
vpp# set dpdk hqos pipe cnt GigabitEthernet7/0/0 2 -----| ---> Создание двух конвейеров
new 2 pipes initialized with none profile -----|
vpp#
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 0 profile 0 -----|
Profile 0 has been successfully set for pipe 0 | ---> Прикрепление профиля к конвейеру 1 и 2
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 1 profile 0 |
Profile 0 has been successfully set for pipe 1 -----|
vpp#
vpp# set dpdk hqos table GigabitEthernet7/0/0 0 -----| ---> Прикрепление таблицы к сетевому интерфейсу
Classification table set to 0 -----|
vpp#
vpp# create dpdk hqos GigabitEthernet7/0/0
DPDK HQOS sched port created
vpp#
vpp# set dpdk hqos state GigabitEthernet7/0/0 up
DPDK HQOS sched port created
vpp#
vpp# show dpdk hqos profile GigabitEthernet7/0/0 -----|
id|total rate|buffer size| BE weights |
----|----------|-----------|--------------- | ---> Просмотр информации о профиле на интерфейсе
0| 1000000| 15000|15% 25% 50% 10% |
----|----------|-----------|--------------- -----|
vpp# show dpdk hqos pipe GigabitEthernet7/0/0 -----|
pipe id| profile id| |
-------------------- | ---> Просмотр информации о конвейерах и профилях
0| 0| |
1| 0| -----|
vpp#
vpp# show dpdk hqos pipe counters GigabitEthernet7/0/0 0 -----|
#| in| drop |
--+----------+---------- |
0| 0| 0 |
--+----------+---------- |
1| 0| 0 |
--+----------+---------- |
2| 0| 0 |
--+----------+---------- | ---> Просмотр информации о счетчиках для каждой из очереди
3| 0| 0 | для конвейера номер 0
--+----------+---------- |
4| 0| 0 |
--+----------+---------- |
5| 0| 0 |
--+----------+---------- |
6| 0| 0 |
--+----------+---------- |
7| 0| 0 |
--+----------+---------- -----|
Легенда: В сегменте сети происходит сетевой взаимодействие между устройствами в каждой из подсети и конкретным сетевым адресом. Необходимо реализовать политики приоритезации для каждой из подсети согласно данным в таблице ниже. Скорость для каждой из очередей и соотношение сетевой адрес подсети - приоритет взяты для примера. В каждом конкретном случае при решении конкретной задачи эти значения могут отличаться.
Номер | Source ip | Destination ip | Приоритет | Скорость |
1 | 192.168.1.0/24 | 10.113.17.84 | prio 0 | 50 Мбит/с |
2 | 192.168.2.0/24 | prio 1 | 50 Мбит/с | |
3 | 10.150.13.0/24 | prio 2 | 200 Мбит/с | |
4 | 10.150.14.0/24 | prio 3 | 100 Мбит/с | |
5 | 172.16.32.0/24 | prio 4 | 600 Мбит/с (25%) | |
6 | 172.16.33.0/24 | prio 5 | 600 Мбит/с (25%) | |
7 | 172.16.184.0/24 | prio 6 | 600 Мбит/с (30%) | |
8 | 172.16.185.0/24 | prio 7 | 600 Мбит/с (20%) |
На физическом интерфейсе “GigabitEthernet7/0/0” с пропускной способностью “1 Гбит/с” необходимо реализовать политики приоритезации трафика согласно таблице.
vpp# classify table buckets 8 mask l3 ip4 src/24 dst ---> Таблица для правил с определенной маской
vpp# classify session table-index 0 pipe 0 queue 0 match l3 ip4 src 192.168.1.0 dst 10.113.17.84 -----|
vpp# classify session table-index 0 pipe 0 queue 1 match l3 ip4 src 192.168.2.0 dst 10.113.17.84 |
vpp# classify session table-index 0 pipe 0 queue 2 match l3 ip4 src 10.150.13.0 dst 10.113.17.84 |
vpp# classify session table-index 0 pipe 0 queue 0 match l3 ip4 src 10.150.14.0 dst 10.113.17.84 | ---> Правила для захвата трафика
vpp# classify session table-index 0 pipe 0 queue 1 match l3 ip4 src 172.16.32.0 dst 10.113.17.84 |
vpp# classify session table-index 0 pipe 0 queue 2 match l3 ip4 src 172.16.33.0 dst 10.113.17.84 |
vpp# classify session table-index 0 pipe 0 queue 0 match l3 ip4 src 172.16.184.0 dst 10.113.17.84 |
vpp# classify session table-index 0 pipe 0 queue 1 match l3 ip4 src 172.16.184.0 dst 10.113.17.84 -----|
vpp#
vpp# set dpdk hqos profile GigabitEthernet7/0/0 add rate 1000000 buffer 15000 tc 50000 50000 200000 100000 be 600000 25 25 30 20
New pipe profile added: -----|
id 0 |total rate 1000000 |bucket size 15000 |
------------------------------------------------------- |
TC0 rate 50000 | ---> Профиль со скоростями
TC1 rate 50000 |
TC2 rate 200000 |
TC3 rate 100000 |
BE rate 600000 [q0 25% q1 25% q2 30% q3 20%] -----|
vpp#
vpp# set dpdk hqos pipe cnt GigabitEthernet7/0/0 2 -----| ---> Создание двух конвейеров
new 2 pipes initialized with none profile -----|
vpp#
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 0 profile 0 -----|
Profile 0 has been successfully set for pipe 0 | ---> Прикрепление профиля к конвейеру 1 и 2
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 1 profile 0 |
Profile 0 has been successfully set for pipe 1 -----|
vpp#
vpp# set dpdk hqos table GigabitEthernet7/0/0 0 -----| ---> Прикрепление таблицы к сетевому интерфейсу
Classification table set to 0 -----|
vpp#
vpp# create dpdk hqos GigabitEthernet7/0/0
DPDK HQOS sched port created
vpp#
vpp# set dpdk hqos state GigabitEthernet7/0/0 up
DPDK HQOS sched port created
vpp#
vpp# show dpdk hqos profile GigabitEthernet7/0/0 -----|
id|total rate|buffer size| BE weights |
----|----------|-----------|--------------- | ---> Просмотр информации о профиле на интерфейсе
0| 1000000| 15000|25% 25% 30% 20% |
----|----------|-----------|--------------- -----|
vpp# show dpdk hqos pipe GigabitEthernet7/0/0 -----|
pipe id| profile id| |
-------------------- | ---> Просмотр информации о конвейерах и профилях
0| 0| |
1| 0| -----|
vpp#
vpp# show dpdk hqos pipe counters GigabitEthernet7/0/0 0 -----|
#| in| drop |
--+----------+---------- |
0| 0| 0 |
--+----------+---------- |
1| 0| 0 |
--+----------+---------- |
2| 0| 0 |
--+----------+---------- | ---> Просмотр информации о счетчиках для каждой из очереди
3| 0| 0 | для конвейера номер 0
--+----------+---------- |
4| 0| 0 |
--+----------+---------- |
5| 0| 0 |
--+----------+---------- |
6| 0| 0 |
--+----------+---------- |
7| 0| 0 |
--+----------+---------- -----|
Легенда: В сегменте сети происходит сетевой взаимодействие между устройствами по заданным сетевым порта. Необходимо реализовать политики приоритезации для каждого сетевого порта назначения согласно данным в таблице ниже. Скорость для каждой из очередей и сетевой порт назначения - приоритет взяты для примера. В каждом конкретном случае при решении конкретной задачи эти значения могут отличаться.
Номер | Destination port | Приоритет | Скорость |
1 | UDP 5060 | prio 0 | 25 Мбит/с |
2 | TCP 22 | prio 1 | 20 Мбит/с |
3 | TCP 445 | prio 2 | 400 Мбит/с |
4 | TCP 554 | prio 3 | 55 Мбит/с |
5 | TCP 80 | prio 4 | 500 Мбит/с (35%) |
6 | TCP 3260 | prio 5 | 500 Мбит/с (15%) |
7 | TCP 4662 | prio 6 | 500 Мбит/с (25%) |
8 | UDP 139 | prio 7 | 500 Мбит/с (25%) |
На физическом интерфейсе “GigabitEthernet7/0/0” с пропускной способностью “1 Гбит/с” необходимо реализовать политики приоритезации трафика согласно таблице.
vpp# classify table buckets 1 mask l3 ip4 proto l4 dst_port ---> Таблица для правил с определенной маской
vpp# classify session table-index 0 pipe 0 queue 0 match l3 ip4 proto 17 l4 dst_port 5060 -----|
vpp# classify session table-index 0 pipe 0 queue 1 match l3 ip4 proto 6 l4 dst_port 22 |
vpp# classify session table-index 0 pipe 0 queue 2 match l3 ip4 proto 6 l4 dst_port 445 |
vpp# classify session table-index 0 pipe 0 queue 3 match l3 ip4 proto 6 l4 dst_port 554 | ---> Правила для захвата трафика
vpp# classify session table-index 0 pipe 0 queue 4 match l3 ip4 proto 6 l4 dst_port 80 |
vpp# classify session table-index 0 pipe 0 queue 5 match l3 ip4 proto 6 l4 dst_port 3260 |
vpp# classify session table-index 0 pipe 0 queue 6 match l3 ip4 proto 6 l4 dst_port 4662 |
vpp# classify session table-index 0 pipe 0 queue 7 match l3 ip4 proto 17 l4 dst_port 139 -----|
vpp#
vpp# set dpdk hqos profile GigabitEthernet7/0/0 add rate 1000000 buffer 15000 tc 25000 20000 400000 55000 be 500000 35 15 25 25
New pipe profile added: -----|
id 0 |total rate 1000000 |bucket size 15000 |
------------------------------------------------------- |
TC0 rate 25000 | ---> Профиль со скоростями
TC1 rate 20000 |
TC2 rate 400000 |
TC3 rate 55000 |
BE rate 500000 [q0 35% q1 15% q2 25% q3 25%] -----|
vpp#
vpp# set dpdk hqos pipe cnt GigabitEthernet7/0/0 2 -----| ---> Создание двух конвейеров
new 2 pipes initialized with none profile -----|
vpp#
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 0 profile 0 -----|
Profile 0 has been successfully set for pipe 0 | ---> Прикрепление профиля к конвейеру 1 и 2
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 1 profile 0 |
Profile 0 has been successfully set for pipe 1 -----|
vpp#
vpp# set dpdk hqos table GigabitEthernet7/0/0 0 -----| ---> Прикрепление таблицы к сетевому интерфейсу
Classification table set to 0 -----|
vpp#
vpp# create dpdk hqos GigabitEthernet7/0/0
DPDK HQOS sched port created
vpp#
vpp# set dpdk hqos state GigabitEthernet7/0/0 up
DPDK HQOS sched port created
vpp#
vpp# show dpdk hqos profile GigabitEthernet7/0/0 -----|
id|total rate|buffer size| BE weights |
----|----------|-----------|--------------- | ---> Просмотр информации о профиле на интерфейсе
0| 1000000| 15000|35% 15% 25% 25% |
----|----------|-----------|--------------- -----|
vpp# show dpdk hqos pipe GigabitEthernet7/0/0 -----|
pipe id| profile id| |
-------------------- | ---> Просмотр информации о конвейерах и профилях
0| 0| |
1| 0| -----|
vpp#
vpp# show dpdk hqos pipe counters GigabitEthernet7/0/0 0 -----|
#| in| drop |
--+----------+---------- |
0| 0| 0 |
--+----------+---------- |
1| 0| 0 |
--+----------+---------- |
2| 0| 0 |
--+----------+---------- | ---> Просмотр информации о счетчиках для каждой из очереди
3| 0| 0 | для конвейера номер 0
--+----------+---------- |
4| 0| 0 |
--+----------+---------- |
5| 0| 0 |
--+----------+---------- |
6| 0| 0 |
--+----------+---------- |
7| 0| 0 |
--+----------+---------- -----|
Легенда: В сегменте сети происходит сетевой взаимодействие между устройствами по заданным сетевым адресам и сетевым порта. Необходимо реализовать политики приоритезации согласно данным в таблице ниже. Скорость для каждой из очередей и сетевой порт назначения - приоритет взяты для примера. В каждом конкретном случае при решении конкретной задачи эти значения могут отличаться.
Номер | Source ip | Destination ip | Destination port | Приоритет | Скорость |
1 | 192.168.1.0/24 | 192.168.20.0/24 | UDP 1974 | prio 0 | 50 Мбит/с |
2 | 192.168.2.0/24 | 192.168.30.0/24 | TCP 557 | prio 1 | 50 Мбит/с |
3 | 192.168.3.0/24 | 192.168.40.0/24 | UDP 948 | prio 2 | 300 Мбит/с |
4 | 192.168.4.0/24 | 192.168.50.0/24 | UDP 1250 | prio 3 | 100 Мбит/с |
5 | 192.168.5.0/24 | 192.168.60.0/24 | TCP 8080 | prio 4 | 500 Мбит/с (65%) |
6 | 192.168.6.0/24 | 192.168.70.0/24 | UDP 1098 | prio 5 | 500 Мбит/с (10%) |
7 | 192.168.7.0/24 | 192.168.80.0/24 | TCP 4669 | prio 6 | 500 Мбит/с (15%) |
8 | 192.168.8.0/24 | 192.168.90.0/24 | UDP 248 | prio 7 | 500 Мбит/с (10%) |
На физическом интерфейсе “GigabitEthernet7/0/0” с пропускной способностью “1 Гбит/с” необходимо реализовать политики приоритезации трафика согласно таблице.
vpp# classify table buckets 8 mask l3 ip4 src/24 dst/24 proto l4 dst_port ---> Таблица для правил с определенной маской
vpp# classify session table-index 0 pipe 0 queue 0 match l3 ip4 src 192.168.1.0 dst 10.10.20.0 proto 17 l4 dst_port 1974 -----|
vpp# classify session table-index 0 pipe 0 queue 1 match l3 ip4 src 192.168.2.0 dst 10.10.30.0 proto 6 l4 dst_port 557 |
vpp# classify session table-index 0 pipe 0 queue 2 match l3 ip4 src 192.168.3.0 dst 10.10.40.0 proto 17 l4 dst_port 948 |
vpp# classify session table-index 0 pipe 0 queue 3 match l3 ip4 src 192.168.4.0 dst 10.10.50.0 proto 17 l4 dst_port 1250 | ---> Правила для захвата трафика
vpp# classify session table-index 0 pipe 0 queue 4 match l3 ip4 src 192.168.5.0 dst 10.10.60.0 proto 6 l4 dst_port 8080 |
vpp# classify session table-index 0 pipe 0 queue 5 match l3 ip4 src 192.168.6.0 dst 10.10.70.0 proto 17 l4 dst_port 1098 |
vpp# classify session table-index 0 pipe 0 queue 6 match l3 ip4 src 192.168.7.0 dst 10.10.80.0 proto 6 l4 dst_port 4669 |
vpp# classify session table-index 0 pipe 0 queue 7 match l3 ip4 src 192.168.8.0 dst 10.10.90.0 proto 17 l4 dst_port 248 -----|
vpp#
vpp# set dpdk hqos profile GigabitEthernet7/0/0 add rate 1000000 buffer 15000 tc 50000 50000 300000 100000 be 500000 65 10 15 10
New pipe profile added: -----|
id 0 |total rate 1000000 |bucket size 15000 |
------------------------------------------------------- |
TC0 rate 50000 | ---> Профиль со скоростями
TC1 rate 50000 |
TC2 rate 300000 |
TC3 rate 100000 |
BE rate 500000 [q0 65% q1 10% q2 15% q3 10%] -----|
vpp#
vpp# set dpdk hqos pipe cnt GigabitEthernet7/0/0 2 -----| ---> Создание двух конвейеров
new 2 pipes initialized with none profile -----|
vpp#
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 0 profile 0 -----|
Profile 0 has been successfully set for pipe 0 | ---> Прикрепление профиля к конвейеру 1 и 2
vpp# set dpdk hqos pipe profile GigabitEthernet7/0/0 pipe 1 profile 0 |
Profile 0 has been successfully set for pipe 1 -----|
vpp#
vpp# set dpdk hqos table GigabitEthernet7/0/0 0 -----| ---> Прикрепление таблицы к сетевому интерфейсу
Classification table set to 0 -----|
vpp#
vpp# create dpdk hqos GigabitEthernet7/0/0
DPDK HQOS sched port created
vpp#
vpp# set dpdk hqos state GigabitEthernet7/0/0 up
DPDK HQOS sched port created
vpp#
vpp# show dpdk hqos profile GigabitEthernet7/0/0 -----|
id|total rate|buffer size| BE weights |
----|----------|-----------|--------------- | ---> Просмотр информации о профиле на интерфейсе
0| 1000000| 15000|65% 10% 15% 10% |
----|----------|-----------|--------------- -----|
vpp# show dpdk hqos pipe GigabitEthernet7/0/0 -----|
pipe id| profile id| |
-------------------- | ---> Просмотр информации о конвейерах и профилях
0| 0| |
1| 0| -----|
vpp#
vpp# show dpdk hqos pipe counters GigabitEthernet7/0/0 0 -----|
#| in| drop |
--+----------+---------- |
0| 0| 0 |
--+----------+---------- |
1| 0| 0 |
--+----------+---------- |
2| 0| 0 |
--+----------+---------- | ---> Просмотр информации о счетчиках для каждой из очереди
3| 0| 0 | для конвейера номер 0
--+----------+---------- |
4| 0| 0 |
--+----------+---------- |
5| 0| 0 |
--+----------+---------- |
6| 0| 0 |
--+----------+---------- |
7| 0| 0 |
--+----------+---------- -----|