SLIP

https//www.racom.eu/cz/support/prot/slip/index.html

Print version

Protokol SLIP pro MORSE

verze 10.0.34.0

9/19/2013

1. Úvod

Protokol SLIP (Serial Line Internet Protocol) pracuje podobně jako protokol PPP na sériové lince s formátem IP. Pro svoji jednoduchost je vhodný pro komunikaci PLC-CU, nezajišťuje však detekci chyb (kontrolní součet v protokolu UDP je nepovinný). Kontrolu musí zajistit vyšší komunikační vrstva. Protokol SLIP je také vhodný pro spojení typu multidrop přes satelit.

2. Formát dat

Protokol vkládá IP datagramy přímo do sériové linky. Každý rámec je opatřen na začátku a na konci Esc-sekvencí END 0xC0. Znaky 0xC0 a 0xDB, které se vyskytnou uvnitř rámce, jsou nahrazeny takto:

     příchozí IP datagram         výsledný rámec SLIP
      začátek                      0xC0
      0xC0                         0xDBDC
      0xDB                         0xDBDD
      konec                        0xC0

Formát datagramu:

| END/8 | IP header | UDP header | MORSE pseudoframe | END/8 |

Formát IP datagramu je popsán v článku Formát UDP datagramu IPGW pro MORSE. Následuje příklad datagramu s ESC znaky, doplněn je krátký popis. Uživatelská data, zde E0 03 80 01, jsou obsažena uvnitř MORSE pseudoframe:

C045 0000 2800 0040 0040 1123 FB0A 6401 010A 6401 0280 
1322 B800 1455 AA00 0090 8000 0000 00E0 0380 01C0

C0           |END/8           ...Esc-END
45 00        |vers/16|        ...IP header
00 28        |IP hlen/16|
00 00        |No/16|
40 00        |Frag/16|
40           |ttl/8|
11           |protocol/8|
23 FB        |hchs/16|
0A 64 01 01  |src IP/32|
0A 64 01 02  |dst IP/32|
80 13        |src port/16|    ...UDP header
22 B8        |dst port/16|
00 14        |UDP len/16|
55 AA        |chs/16|
00 00        |flags/16|       ...MORSE pseudoframe
90           |PT/8|
80           |D/1|R/4|No/3|  D=1
00 00 00 00  |morse addr/32|
E0 03 80 01  |service request-Read GMT time/32|
C0           |END/8           ...Esc-END

3. Implementace v Morse

Příklad 1 – odeslání dat portem

Paket s daty BBBB přišel z CU 690F1083 do CU 690F1081 a je odeslán přes SCC2 protokolem SLIP:

10:06:35.011|                 |690F1081 690F1083|S02I   IN   2|*09 7usr  0
BBBB
10:06:35.011 tx     40 | S02
C045 0000 2601 4440 0040 112E 1E0A 6401 0200 0000
0022 B800 0000 1293 5700 0009 0769 0F10 83BB BBC0

Komentář:

C0             ...Esc-END
4500 0026 0144 4000 4011 2E1E
0A64 0102      ...IPsrc
0000 0000      ...IPdst není definováno
22B8 0000 0012 9357 0000
09             ...typ paketu
07             ...D=0, CU->host, následuje adresa src
690F 1083      ...MORSE addr src
BBBB           ...data
C0             ...Esc-END

Příklad 2 – čtení času GMT z DCE, přes síť

Simulovaný dotaz přišel protokolem SLIP do CU 690F1081 a je odeslán sítí MORSE do CU 690F1083. Opačným směrem se vrací odpověď:

10:09:04.902 rxsim  42 | S02
C045 0000 2800 0040 0040 1123 FB0A 6401 010A 6401 0280 1322 B800 14DC 
1600 0090 8169 0F10 83E0 0380 01C0

10:09:04.903|                 |690F1083 690F1081|S02I  OUT  4||90 1srv  0
E003 8001

10:09:05.080|                 |690F1081 690F1083|S02I   IN 10|*92 1srv  0
E003 0001 4717 234B 00BA

10:09:05.081 tx     48 | S02
C045 0000 2E01 4640 0040 112E 140A 6401 0200 0000 0022 B800 0000 1A7A 
E700 0092 0169 0F10 83E0 0300 0147 1723 4B00 BAC0

Komentář k dotazu:

C0
4500 0028 0000 4000 4011 23FB
0A64 0101         ...IPsrc (PLC)
0A64 0102         ...IPdst (CU)
8013 22B8 0014 DC16 0000
90 
81                ...D=1, host->CU, addr dst
690F 1083         ...MORSE addr dst
E003 8001         ...data, servisní dotaz na čas
C0

Komentář k odpovědi:

C0
4500 002E 0146 4000 4011 2E14
0A64 0102         ...IPsrc (CU)
0000 0000         ...IPdst není definováno
22B8 0000 001A 7AE7 0000
92 
01                ...D=0, CU->host, addr src
690F 1083         ...MORSE addr src
E003 0001 4717 234B 00BA  ...data obsahující čas
C0

Příklad 3 – komunikace s modemy Multidrop

                              ___
                             |___| satellite
                               |
                              /|\
                          .    .   .
                       .       .      .
                    .          .         .
                 .             .            .
              \|/             \|/            \|/
             __|__           __|__          __|__
            |_____|MD       |_____|MD      |_____|MD
             __|__           __|__          __|__
            |_____|MR400    |_____|MR400   |_____|MR400 
(L)oc IP:   00000001        00000002       00000003
MORSE addr: 690F0001        690F0002       690F0003

Modem multidrop (MD) vysílá paket na satelitní modem a ten jej transparentně vrací všem modemům MD, které jej slyší. Protokol SLIP aplikovaný na SCC mezi MORSE CU a MD umožňuje tuto komunikaci. Přijaté pakety adresované pro vlastní CU jsou zpracovány, ostatní jsou zahozeny. Příklad základní konfigurace CU s IP 00000001:

Nid|address |M | u   s | L   N |l w n g H|sTO Err  Cent vTO hTO
(0) 004A1E27     -  S00| -  R00|0 0 0 0 -| 15 SERV  OFF 304  30
(1) 690F0001    S02 S00| -  S03|0 0 0 0 -| 15 SERV  OFF 304  30
(2) 00000000    S01 S00| -  R02|0 0 0 0 -| 15 SERV  OFF 304  30
(3) 00000000    S02 S00| -  R03|0 0 0 0 -| 15 SERV  OFF 304  30
(4) 00000000    S03 S00| -  R04|0 0 0 0 -| 15 SERV  OFF 304  30
 
 Channel to Node Interface:
    retranslation     |   user+service                 lim
 id N  A t          m | N  A t Base     m  sec brc han S   e compr
(0) 0   NO AR         | 1   NO AR          usr OFF usr OFF NONE
(1) 0   NO AR         | 2 MASK 00000000/08 usr OFF usr OFF NONE
(2) 0   NO AR         | 1 MASK 00000000/08 usr OFF usr OFF NONE
(3) 1   NO AR         | 0 MASK 00000000/08 usr OFF usr OFF NONE

SCCs:
    n     m     g    b   p8   i   s  XRC D G  o
(0)RS232 ASYNC  SW  19200N81  5 1600 --- D 0 MARS-A
(1)RS232 ASYNC  SW  19200N81  5 1600 --- D 0 MARS-A
(2)RS232 ASYNC  SW  19200N81  5 1600 --- D 0 MARS-A
(3)RS232 ASYNC  SW  19200N81  5 1600 --- D 0 SLIP

  INTERNET PROTOCOL GATEWAY:
(L)oc IP:00000001h 0.0.0.1        
MR(U):1500
M-IP-M:
  (A)rt:1; write (E)nable:ON
  (b)ase:690F0000  MAS(K):0000FFFF  s(h)ift:0000 ->set Security off!
  (r)epeats:0000  Sec(u)rity:OFF  (t)imeout:0  (p)roxy timeout:0s
  (f)rag size:400bytes  (g)lue (append) up to:0packets

Art1    ...je prázdná

Příklad 4 – komunikace se Setrem

Od verze 10.0.24.0 je možno spustit Setr s parametrem -ns, který provede lokální připojení přes SLIP. Protokol musí mít nastavenu IP adresu 10.0.0.1, nejlépe pomocí parametru Defau(l)ts for single host. Setr pak automaticky použije adresu 10.0.0.2. Pro spojení po SCC stačí 3 vodiče (Rx,Tx, GND). Příklady:

setr -ns                 ...lokální komunikace
setr -ns -mh             ...lokální komunikace + monitoring SCC
setr -ns -mh -da690F1010 ...adresa připojeného nódu, komunikuje po síti

Setr s parametrem -ns neprovádí address seek, adresu nódu tedy může získat pouze pomocí parametru -da.

Příklad dotazu sts vyslaného ze Setru, monitorováno v CU:

11:21:47.442 rx;i   42 | S03
C045 0000 2800 0040 0040 1126 C30A 0000 020A 0000 0122 B822 B800 1449 A8
00 0090 8069 0F10 10E0 0A73 00C0
11:21:47.442|               |690F1010 690F1010|S03I   OUT    4||90 0srv  0
E00A 7300
11:21:47.442|               |690F1010 690F1010|S03I    IN    6|*92 0srv  0
A00A 3735 3330
11:21:47.442 tx     44 | S03
C045 0000 2A00 0A40 0040 1126 B70A 0000 010A 0000 0222 B822 B800 1690 BF
00 0092 0069 0F10 10A0 0A37 3533 30C0

Parametr -ns je užitečný pro testování komunikace CU-PLC, která probíhá protokolem SLIP.

4. Konfigurační parametry

  INTERNET PROTOCOL GATEWAY:
Defau(l)ts for single host
(L)oc IP:0A000001h 10.0.0.1       
suppress (H)eader:OFF
MR(U):1400
M-IP-M:
  (A)rt:0; write (E)nable:ON
  (b)ase:00000000  MAS(K):00000000  s(h)ift:0000->set Security off!
  (r)epeats:0003  Sec(u)rity:ON  (t)imeout:300  (p)roxy timeout:0s
  (f)rag size:400bytes  (g)lue (append) up to:0packets
IP-M-IP:
  (I)PArt:0
  b(a)se:0A000001  (m)ask:00000000
  IP(F)rag. size:552
MAS:
  (s)Art:single address; write (e)nable:ON
  (B)ase:690F1010  (M)ask:00000000
     BEWARE! IF YOU CHANGE CONTENT OF THE ART TABLE,
     YOU SHOULD RESTART (INIT) THIS PROTOCOL!
(P)inger (S)tatus
Firewall (T)ype:0000 A(d)dress:00000000 Mas(k):00000000
Unix Time:
  e(n)able:OFF  per(i)od:3600s
  time (H)ost:00000000
(q)uit
>>

Protokol SLIP vyžaduje konfigurovat pouze:

Defau(l)ts

Defau(l)ts for single host — touto volbou se nastaví automaticky ostatní parametry pro komunikaci mezi IP adresami pro PC 10.0.0.2 a pro CU 10.0.0.1. Tyto parametry je možno vložit také ručně:

(L)oc

(L)oc IP:0A000001h 10.0.0.1 — adresa protokolu SLIP

MR(U)

MR(U):1400 — maximální délku přenášeného rámce

(A)rt

(A)rt:0 — V případě spojení mezi dvěma CU po sériové lince použijeme konfiguraci jako při retranslaci do SCC s protokolem MARS-A. V parametrech SLIP použijeme režim M-IP-M a vložíme číslo tabulky (A)rt. Tabulka pak obsahuje pouze default gw na protějšího účastníka linky.

(s)Art

(s)Art:single address — od verze 10.0.18.0 výběrem ze seznamu, ve starších verzích vložíme 0 a Art tabulku nevyplňujeme.

(B)ase

(B)ase:690F1010 — adresa nódu připojenému k SCC s protokolem SLIP

(M)ask

(M)ask:00000000 — maska pro jedinou adresu

5. Historie

  • release 7.29 z 09/2005 – SLIP vložen do všech modulů pro Coldfire (MR400), není dále podporováno pro MR25

  • release 10.0.3.0 až 10.0.9.0 – v těchto verzích není protokol SLIP obsažen

  • release 10.0.18.0 z 10/2007 – defaulty pro režim „single address“, listbox pro volbu Art

  • release 10.0.24.0 z 12/2007 – parametr -ns pro komunikaci se Setrem

©  2024 RACOM s.r.o. All Rights Reserved.