TMPA-2013 Popesko: Verification of Programmable and Configurable Networks Using the UPPAAL System...

Post on 15-Jun-2015

168 views 1 download

Transcript of TMPA-2013 Popesko: Verification of Programmable and Configurable Networks Using the UPPAAL System...

Верификация программно-конфигурируемых сетейпри помощи системы UPPAAL

В.В. Подымов, У.В. Попеско

МГУ им. М.В. Ломоносова

2013

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 1 / 22

План

ВведениеЦельСхема верификацииФормальная модельАлгоритм трансляцииКорректность алгоритмаЭкспериментальное исследование

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 2 / 22

Введение. ПКС

Отделение уровня управления от устройств в узлах сетиПрограммное управление сетьюСтандарт Openflow

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 3 / 22

Введение. ПКСПример работы сети

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 4 / 22

Введение. ПКСПример работы сети

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 5 / 22

Введение. ПКСПример работы сети

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 6 / 22

Введение. ПКСПример работы сети

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 7 / 22

Введение. ПКСПравило

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 8 / 22

Введение. UPPAAL

Входная модель — сеть временных автоматовПроверяет формулы логики TCTL

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 9 / 22

Цель

Разработать метод верификации ПКСкак распределённых систем реального времени

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 10 / 22

Схема верификации

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 11 / 22

Формальная модельДиаграммы UML

Диаграммы Dia

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 12 / 22

Формальная модель

Формализация всех элементов диаграммы:I коммутаторI контроллерI каналI заголовок пакетаI . . .

Формальная семантика сети:I конечное число управляющих состояний элементов диаграммы

(коммутаторов, контроллера, каналов)I локальные таймеры

(бесконечное число значений)I состояние сети:

совокупность управляющих состояний и значений таймеровI сценарии работы сети:

система переписывания

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 13 / 22

Формальная модельПримеры правил переписывания

Применение коммутатором правила r = (p, h, x , p′) ∈ Rule(t ∈ [L,R]):Com(select,Rule, t, h, p)→ Com(hit,Rule, h, p′),

Отправка коммутатором пакета в канал:Com(hit,Rule, h, p),Chan(empty)→

Com(start,Rule),Chan(full , 0, h)

Получение коммутатором пакета:Com(start,Rule),Chan(sent, h)→

Com(select, 0,Rule, h, p),Chan(empty)

Продвижение времени:все таймеры сдвигаются на одну и ту же величину, если системане может “прогрессировать”

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 14 / 22

Алгоритм трансляции

Вход: UML-диаграмма

Выход: сеть временных автоматов UPPAAL

Принцип работы:

канал −→ переменные + таймерконтроллер −→ временной автоматкоммутатор −→ временной автоматвспомогательные автоматы

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 15 / 22

Алгоритм трансляцииАвтомат коммутатора

select

t <= 5 miss

hit

rewrite

t <= 3

start

rule_t[r] >= rule_max[r]active[r] = false

t >= 3

i = 0..3 -> active[i]

i = 0..3!active[i]

!c[r]hurry!send(c[r], h)

hurry!send(to_con[0], (p, h))

i = 1..3 -> active[i]

(i = 0..3)active[i] && (rule_t[i] > rule_max[i])active[i] = false

i = 0..3 -> !active[i]|| (rule_t[i] <= rule_max[i] )

i = 0..3 -> !hit(rule[i])

(i = 0..3)(t >= 2) && !active[i]set_rule(i)

from_con[0]hurry!get(from_con[0]),t = 0

rule_t[r] < rule_max[r](i = 0..3)hit(rule[i])r = i

(i = 1,4,5)c_ready[i]hurry!get(c[i]), p = i, t = 0

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 16 / 22

Алгоритм трансляцииАвтомат контроллера

send

idle

!con_in[c]hurry!send(from_con[c], rule[r])

i = 0..2 -> !hit(rule[i], (c, p, h))

(i = 0..2)hit(r[i], (c, p, h))

r = i

(i = 0..2) to_con_ready[i]hurry! get(to_con[i]), c = i

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 17 / 22

Алгоритм трансляцииВспомогательные автоматы

s1

(i = 0..2 -> ok(to_con[i])) &&(i = 1..9 -> ok(c[i]))

(i = 1..9)to_deliver(c[i])c_ready[i]

(i = 0..2)to_deliver(to_con[i])to_con_ready[i])

s1 c[0]hurry!c[0] = false

hurry?

s1 (i = 1..3, num = 1..3)!c[num]hurry!send(c[num], i)

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 18 / 22

Корректность алгоритма

Теорема (например, Кларк, Грамберг, Пелед. 2002)Если системы переходов M1, M2 эквивалентны по прореживанию иформула Φ логики LTL−X истинна для M1, то она также истинна дляM2.

ТеоремаПусть N — произвольная ПКС. Тогда системы переходов TSN иTSAlg(N) эквивалентны по прореживанию.

СледствиеАлгоритм Alg корректен.

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 19 / 22

Корректность алгоритма

Теорема (например, Кларк, Грамберг, Пелед. 2002)Если системы переходов M1, M2 эквивалентны по прореживанию иформула Φ логики LTL−X истинна для M1, то она также истинна дляM2.

ТеоремаПусть N — произвольная ПКС. Тогда системы переходов TSN иTSAlg(N) эквивалентны по прореживанию.

СледствиеАлгоритм Alg корректен.

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 19 / 22

Экспериментальное исследование1 Отсутствие блокировки сети:

A[] not deadlock2 Постоянное поступление пакетов из внешней среды:

A <> forall(num : int[0, 2]) (channel_h[stream.align[num]])3 Коммутатор может не принять ни одного пакета:

E [] com1.start4 Хотя бы один пакет будет обработан контроллером:

E <> !con.idle5 Хотя бы один пакет успешно перенаправится коммутатором:

E <> com1.hit

Свойство номер:1 2 3 4 5

2 комм., пустые таблицы 27ч. 1с. 1с. 1с. 1с.3 комм., кольцо - 1с. 1с. 7с. 1с.4 комм., звезда - 1с. 1с. 62с. 85с.

4 комм. - 1с. 1с. 60с. 79с.В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 20 / 22

Результаты

Предложена формальная модель ПКС как СРВ:I UML-диаграммыI система переписывания

Разработан (и реализован) метод верификации ПКС как СРВ:I алгоритм трансляции UML-диаграмм в сети временных автоматовI корректность алгоритма

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 21 / 22

Конец

В.В. Подымов, У.В. Попеско (МГУ) Верификация ПКС при пом. UPPAAL 2013 22 / 22