Virtlab:Protokoly/Aktivační server
Z VirtlabWiki
< Virtlab:Protokoly(Rozdíly mezi verzemi)
												
			
			| Verze z 14:33, 3. 8. 2007 Dol72 (Diskuse | příspěvky) (→Poznámky - V kódu bylo upraveno tak, že jiné signály jsou pokládány za neplatné.) ← Předchozí porovnání  | 
				Aktuální verze Vav166 (Diskuse | příspěvky)  | 
			||
| Řádka 6: | Řádka 6: | ||
| * Komunikace přes TCP spojení, standardně na portu 50002. | * Komunikace přes TCP spojení, standardně na portu 50002. | ||
| * Pro názvy příkazů a jména argumentů nerozlišuje velká a malá písmena (''case insensitive''). | * Pro názvy příkazů a jména argumentů nerozlišuje velká a malá písmena (''case insensitive''). | ||
| - | * První řádek a každý další první po prázdném řádku určuje příkaz, následující řádky jeho argumenty. | + | * První řádek určuje příkaz, následující řádky jeho argumenty. | 
| * Na pořadí argumentů nezáleží a jsou case-insensitive. | * Na pořadí argumentů nezáleží a jsou case-insensitive. | ||
| * Za názvem argumentu je dvojtečka, za kterou ihned nasledují jeho parametry, za dvojtečkou nesmí být mezera. | * Za názvem argumentu je dvojtečka, za kterou ihned nasledují jeho parametry, za dvojtečkou nesmí být mezera. | ||
| * Bílé znaky (''whitespace''), jako tabelátory (0x09), mezery (0x20) nejsou povoleny, slouží jako oddělovače. parametrů pro argumenty. Výjimku tvoří mezery a tabelátory před názvem příkazu a argumentu. Tyto jsou odfiltrovány. | * Bílé znaky (''whitespace''), jako tabelátory (0x09), mezery (0x20) nejsou povoleny, slouží jako oddělovače. parametrů pro argumenty. Výjimku tvoří mezery a tabelátory před názvem příkazu a argumentu. Tyto jsou odfiltrovány. | ||
| * Odeslání prázdného řádku (jen <LF> (0x0A)), potvrdí, že všechny argumenty byly odeslány a je možno zpracovat příkaz. | * Odeslání prázdného řádku (jen <LF> (0x0A)), potvrdí, že všechny argumenty byly odeslány a je možno zpracovat příkaz. | ||
| - | * Po odeslání prázdného řádku je možno psát další příkaz. | + | * Spojení ukončeno vždy na žádost klienta, mimo speciální případy, kdy server přijímaným datům nerozumí, nebo je klient připojen příliš dlouho. | 
| - | * Spojení ukončeno vždy na žádost klienta, mimo speciální případy, kdy rezervační server přijímaným datům nerozumí, nebo je klient připojen příliš dlouho. | + | |
| * Při odpovědi serveru na příkaz je na prvním řádku návratový kód, mezera a za ní popis odpovědi. | * Při odpovědi serveru na příkaz je na prvním řádku návratový kód, mezera a za ní popis odpovědi. | ||
| == Popis protokolu == | == Popis protokolu == | ||
| - | === Pokyn rezervačního serveru aktivačnímu serveru ke znovunačtení databáze === | + | === Pokyn rezervačního serveru aktivačnímu serveru ke znovunačtení databáze rezervací === | 
| - | * Příkaz: "kill\n" | + | * Příkaz: "reload\n" | 
| - | * Argument (povinný): "kill:10\n" | + | |
| * Odpověď: Návratový kód. | * Odpověď: Návratový kód. | ||
| Příklad: | Příklad: | ||
| - | kill\n | + | reload\n | 
| - | kill:10\n | + | |
| \n | \n | ||
| - | === Pokyn rezervačního serveru aktivačnímu serveru k ukočení činnosti === | + | === Předání popisu topologie pro rezervaci od rezervačního serveru aktivačnímu serveru === | 
| - | * Příkaz: "kill\n" | + | * Příkaz: "linkconf\n" | 
| - | * Argument (povinný): kill:15\n" | + | * Argument (povinný): resid:''ID rezervace''\n" | 
| - | * Odpověď: Návratový kód. | + | * Argument (povinný, opakuje se alespoň jednou): link:''popis_spojení''\n" | 
| + | * Odpověď: Návratový kód. (objeví-li se v resid lomítko, jde o špatnou syntaxi parametrů) | ||
| Příklad: | Příklad: | ||
| - | kill\n | + | <pre> | 
| - | kill:15\n | + | linkconf\n | 
| - | \n | + | resid:1@koleje\n | 
| + | link:rp@koleje:fastethernet1, rm@koleje:fastethernet1;\n | ||
| + | link:ro@koleje:fastethernet1, rp@koleje:fastethernet0;\n | ||
| + | link:rn@koleje:fastethernet1, ro@koleje:fastethernet0;\n | ||
| + | link:rm@koleje:fastethernet0, rn@koleje:fastethernet0;\n | ||
| + | \n | ||
| + | </pre> | ||
| + | === Pokyn rezervačního serveru aktivačnímu serveru ke zrušení popisu topologie rezervace === | ||
| + | * Příkaz: "dellinkconf\n" | ||
| + | * Argument (povinný): delresid:''ID rezervace''\n" | ||
| + | * Odpověď: Návratový kód. (objeví-li se v delresid lomítko, jde o špatnou syntaxi parametrů) | ||
| + | |||
| + | Příklad: | ||
| + | <pre> | ||
| + | dellinkconf\n | ||
| + | delresid:1@koleje\n | ||
| + | \n | ||
| + | </pre> | ||
| - | === Poznámka === | + | [[Kategorie:Protokol]] | 
| - | Volba příkazu <code>kill</code> a číselných kódů přímo vyplývá ze způsobu realizace oddělení serverů původně komunikujících skrze funkci OS [http://en.wikipedia.org/wiki/Kill_(Unix) kill]. | + | [[Kategorie:Aktivační server]] | 
Aktuální verze
Tento článek popisuje komunikační prokokol mezi rezervačním a aktivačním serverem distribuovaného Virtlabu.
Obsah | 
[editovat]
Vlastnosti
- Textově orientovaný protokol.
 - Textové příkazy, oddělené <LF> (0x0A), (symbol <CR> (0x0D) je ignorován)
 - Komunikace přes TCP spojení, standardně na portu 50002.
 - Pro názvy příkazů a jména argumentů nerozlišuje velká a malá písmena (case insensitive).
 - První řádek určuje příkaz, následující řádky jeho argumenty.
 - Na pořadí argumentů nezáleží a jsou case-insensitive.
 - Za názvem argumentu je dvojtečka, za kterou ihned nasledují jeho parametry, za dvojtečkou nesmí být mezera.
 - Bílé znaky (whitespace), jako tabelátory (0x09), mezery (0x20) nejsou povoleny, slouží jako oddělovače. parametrů pro argumenty. Výjimku tvoří mezery a tabelátory před názvem příkazu a argumentu. Tyto jsou odfiltrovány.
 - Odeslání prázdného řádku (jen <LF> (0x0A)), potvrdí, že všechny argumenty byly odeslány a je možno zpracovat příkaz.
 - Spojení ukončeno vždy na žádost klienta, mimo speciální případy, kdy server přijímaným datům nerozumí, nebo je klient připojen příliš dlouho.
 - Při odpovědi serveru na příkaz je na prvním řádku návratový kód, mezera a za ní popis odpovědi.
 
[editovat]
Popis protokolu
[editovat]
Pokyn rezervačního serveru aktivačnímu serveru ke znovunačtení databáze rezervací
- Příkaz: "reload\n"
 - Odpověď: Návratový kód.
 
Příklad:
reload\n \n
[editovat]
Předání popisu topologie pro rezervaci od rezervačního serveru aktivačnímu serveru
- Příkaz: "linkconf\n"
 - Argument (povinný): resid:ID rezervace\n"
 - Argument (povinný, opakuje se alespoň jednou): link:popis_spojení\n"
 - Odpověď: Návratový kód. (objeví-li se v resid lomítko, jde o špatnou syntaxi parametrů)
 
Příklad:
linkconf\n resid:1@koleje\n link:rp@koleje:fastethernet1, rm@koleje:fastethernet1;\n link:ro@koleje:fastethernet1, rp@koleje:fastethernet0;\n link:rn@koleje:fastethernet1, ro@koleje:fastethernet0;\n link:rm@koleje:fastethernet0, rn@koleje:fastethernet0;\n \n
[editovat]
Pokyn rezervačního serveru aktivačnímu serveru ke zrušení popisu topologie rezervace
- Příkaz: "dellinkconf\n"
 - Argument (povinný): delresid:ID rezervace\n"
 - Odpověď: Návratový kód. (objeví-li se v delresid lomítko, jde o špatnou syntaxi parametrů)
 
Příklad:
dellinkconf\n delresid:1@koleje\n \n
