SliceCOM adapter felhasznaloi dokumentacioja - 0.51 verziohoz Bartók István Utolso modositas: Wed Aug 29 17:26:58 CEST 2001 ----------------------------------------------------------------- Hasznalata: Forditas: Code maturity level options [*] Prompt for development and/or incomplete code/drivers Network device support Wan interfaces MultiGate (COMX) synchronous Support for MUNICH based boards: SliceCOM, PCICOM (NEW) Support for HDLC and syncPPP... A modulok betoltese: modprobe comx modprobe comx-proto-ppp # a Cisco-HDLC es a SyncPPP protokollt is # ez a modul adja modprobe comx-hw-munich # a modul betoltodeskor azonnal jelent a # syslogba a detektalt kartyakrol Konfiguralas: # Ezen az interfeszen Cisco-HDLC vonali protokoll fog futni # Az interfeszhez rendelt idoszeletek: 1,2 (128 kbit/sec-es vonal) # (a G.703 keretben az elso adatot vivo idoszelet az 1-es) # mkdir /proc/comx/comx0.1/ echo slicecom >/proc/comx/comx0.1/boardtype echo hdlc >/proc/comx/comx0.1/protocol echo 1 2 >/proc/comx/comx0.1/timeslots # Ezen az interfeszen SyncPPP vonali protokoll fog futni # Az interfeszhez rendelt idoszelet: 3 (64 kbit/sec-es vonal) # mkdir /proc/comx/comx0.2/ echo slicecom >/proc/comx/comx0.2/boardtype echo ppp >/proc/comx/comx0.2/protocol echo 3 >/proc/comx/comx0.2/timeslots ... ifconfig comx0.1 up ifconfig comx0.2 up ----------------------------------------------------------------- A COMX driverek default 20 csomagnyi transmit queue-t rendelnek a halozati interfeszekhez. WAN halozatokban ennel hosszabbat is szokas hasznalni (20 es 100 kozott), hogy a vonal kihasznaltsaga nagy terheles eseten jobb legyen (bar ezzel megno a varhato kesleltetes a csomagok sorban allasa miatt): # ifconfig comx0 txqueuelen 50 Ezt a beallitasi lehetoseget csak az ujabb disztribuciok ifconfig parancsa tamogatja (amik mar a 2.2 kernelekhez keszultek, mint a RedHat 6.1 vagy a Debian 2.2). A 2.1-es Debian disztribuciohoz a http://www.debian.org/~rcw/2.2/netbase/ cimrol toltheto le ujabb netbase csomag, ami mar ilyet tamogato ifconfig parancsot tartalmaz. Bovebben a 2.2 kernel hasznalatarol Debian 2.1 alatt: http://www.debian.org/releases/stable/running-kernel-2.2 ----------------------------------------------------------------- A kartya LED-jeinek jelentese: piros - eg, ha Remote Alarm-ot kuld a tuloldal zold - eg, ha a vett jelben megtalalja a keretszinkront Reszletesebben: piros: zold: jelentes: - - nincs keretszinkron (nincs jel, vagy rossz a jel) - eg "minden rendben" eg eg a vetel OK, de a tuloldal Remote Alarm-ot kuld eg - ez nincs ertelmezve, egyelore funkcio nelkul ----------------------------------------------------------------- Reszletesebb leiras a hardver beallitasi lehetosegeirol: Az altalanos,- es a protokoll-retegek beallitasi lehetosegeirol a 'comx.txt' fajlban leirtak SliceCOM kartyanal is ervenyesek, itt csak a hardver-specifikus beallitasi lehetosegek vannak osszefoglalva: Konfiguralasi interfesz a /proc/comx/ alatt: Minden timeslot-csoportnak kulon comx* interfeszt kell letrehozni mkdir-rel: comx0, comx1, .. stb. Itt beallithato, hogy az adott interfesz hanyadik kartya melyik timeslotja(i)bol alljon ossze. A Cisco-fele serial3:1 elnevezesek (serial3:1 = a 3. kartyaban az 1-es idoszelet-csoport) Linuxon aliasing-ot jelentenenek, ezert mi nem tudunk ilyen elnevezest hasznalni. Tobb kartya eseten a comx0.1, comx0.2, ... vagy slice0.1, slice0.2 nevek hasznalhatoak. Tobb SliceCOM kartya is lehet egy gepben, de sajat interrupt kell mindegyiknek, nem tud meg megosztott interruptot kezelni. Az egesz kartyat erinto beallitasok: Az ioport es irq beallitas nincs: amit a PCI BIOS kioszt a rendszernek, azt hasznalja a driver. comx0/boardnum - hanyadik SliceCOM kartya a gepben (a 'termeszetes' PCI sorrendben ertve: ahogyan a /proc/pci-ban vagy az 'lspci' kimeneteben megjelenik, altalaban az alaplapi PCI meghajto aramkorokhoz kozelebb eso kartyak a kisebb sorszamuak) Default: 0 (0-tol kezdodik a szamolas) Bar a kovetkezoket csak egy-egy interfeszen allitjuk at, megis az egesz kartya mukodeset egyszerre allitjak. A megkotes hogy csak UP-ban levo interfeszen hasznalhatoak, azert van, mert kulonben nem vart eredmenyekre vezetne egy ilyen paranccsorozat: echo 0 >boardnum echo internal >clock_source echo 1 >boardnum - Ez a 0-s board clock_source-at allitana at. Ezek a beallitasok megmaradnak az osszes interfesz torlesekor, de torlodnek a driver modul ki/betoltesekor. comx0/clock_source - A Tx orajelforrasa, a Cisco-val hasonlatosra keszult. Hasznalata: papaya:# echo line >/proc/comx/comx0/clock_source papaya:# echo internal >/proc/comx/comx0/clock_source line - A Tx orajelet a vett adatfolyambol dekodolja, igyekszik igazodni hozza. Ha nem lat orajelet az inputon, akkor atall a sajat orajelgeneratorara. internal - A Tx orajelet a sajat orajelgeneratora szolgaltatja. Default: line Normal osszeallitas eseten a tavkozlesi szolgaltato eszkoze (pl. HDSL modem) adja az orajelet, ezert ez a default. comx0/framing - A CRC4 ki/be kapcsolasa A CRC4: 16 PCM keretet (A PCM keret az, amibe a 32 darab 64 kilobites csatorna van bemultiplexalva. Nem osszetevesztendo a HDLC kerettel.) 2x8 -as csoportokra osztanak, es azokhoz 4-4 bites CRC-t szamolnak. Elsosorban a vonal minosegenek a monitorozasara szolgal. papaya:~# echo crc4 >/proc/comx/comx0/framing papaya:~# echo no-crc4 >/proc/comx/comx0/framing Default a 'crc4', a MATAV vonalak altalaban igy futnak. De ha nem egyforma is a beallitas a vonal ket vegen, attol a forgalom altalaban at tud menni. comx0/linecode - A vonali kodolas beallitasa papaya:~# echo hdb3 >/proc/comx/comx0/linecode papaya:~# echo ami >/proc/comx/comx0/linecode Default a 'hdb3', a MATAV vonalak igy futnak. (az AMI kodolas igen ritka E1-es vonalaknal). Ha ez a beallitas nem egyezik a vonal ket vegen, akkor elofordulhat hogy a keretszinkron osszejon, de CRC4-hibak es a vonalakon atvitt adatokban is hibak keletkeznek (amit a HDLC/SyncPPP szinten CRC-hibaval jelez) comx0/reg - a kartya aramkoreinek, a MUNICH (reg) es a FALC (lbireg) comx0/lbireg regisztereinek kozvetlen elerese. Hasznalata: echo >reg 0x04 0x0 - a 4-es regiszterbe 0-t ir echo >reg 0x104 - printk()-val kiirja a 4-es regiszter tartalmat a syslogba. WARNING: ezek csak a fejleszteshez keszultek, sok galibat lehet veluk okozni! comx0/loopback - A kartya G.703 jelenek a visszahurkolasara is van lehetoseg: papaya:# echo none >/proc/comx/comx0/loopback papaya:# echo local >/proc/comx/comx0/loopback papaya:# echo remote >/proc/comx/comx0/loopback none - nincs visszahurkolas, normal mukodes local - a kartya a sajat maga altal adott jelet kapja vissza remote - a kartya a kivulrol vett jelet adja kifele Default: none ----------------------------------------------------------------- Az interfeszhez (Cisco terminologiaban 'channel-group') kapcsolodo beallitasok: comx0/timeslots - mely timeslotok (idoszeletek) tartoznak az adott interfeszhez. papaya:~# cat /proc/comx/comx0/timeslots 1 3 4 5 6 papaya:~# Egy timeslot megkeresese (hanyas interfeszbe tartozik nalunk): papaya:~# grep ' 4' /proc/comx/comx*/timeslots /proc/comx/comx0/timeslots:1 3 4 5 6 papaya:~# Beallitasa: papaya:~# echo '1 5 2 6 7 8' >/proc/comx/comx0/timeslots A timeslotok sorrendje nem szamit, '1 3 2' ugyanaz mint az '1 2 3'. Beallitashoz az adott interfesznek DOWN-ban kell lennie (ifconfig comx0 down), de ugyanannak a kartyanak a tobbi interfesze uzemelhet kozben. Beallitaskor leellenorzi, hogy az uj timeslotok nem utkoznek-e egy masik interfesz timeslotjaival. Ha utkoznek, akkor nem allitja at. Mindig 10-es szamrendszerben tortenik a timeslotok ertelmezese, nehogy a 08, 09 alaku felirast rosszul ertelmezze. ----------------------------------------------------------------- Az interfeszek es a kartya allapotanak lekerdezese: - A ' '-szel kezdodo sorok az eredeti kimenetet, a //-rel kezdodo sorok a magyarazatot jelzik. papaya:~$ cat /proc/comx/comx1/status Interface administrative status is UP, modem status is UP, protocol is UP Modem status changes: 0, Transmitter status is IDLE, tbusy: 0 Interface load (input): 978376 / 947808 / 951024 bits/s (5s/5m/15m) (output): 978376 / 947848 / 951024 bits/s (5s/5m/15m) Debug flags: none RX errors: len: 22, overrun: 1, crc: 0, aborts: 0 buffer overrun: 0, pbuffer overrun: 0 TX errors: underrun: 0 Line keepalive (value: 10) status UP [0] // Itt kezdodik a hardver-specifikus resz: Controller status: No alarms // Alarm: hibajelzes: // // No alarms - minden rendben // // LOS - Loss Of Signal - nem erzekel jelet a bemeneten. // AIS - Alarm Indication Signal - csak egymas utani 1-esek jonnek // a bemeneten, a tuloldal igy is jelezheti hogy meghibasodott vagy // nincs inicializalva. // AUXP - Auxiliary Pattern Indication - 01010101.. sorozat jon a bemeneten. // LFA - Loss of Frame Alignment - nincs keretszinkron // RRA - Receive Remote Alarm - a tuloldal el, de hibat jelez. // LMFA - Loss of CRC4 Multiframe Alignment - nincs CRC4-multikeret-szinkron // NMF - No Multiframe alignment Found after 400 msec - ilyen alarm a no-crc4 // es crc4 keretezesek eseten nincs, lasd lentebb // // Egyeb lehetseges hibajelzesek: // // Transmit Line Short - a kartya ugy erzi hogy az adasi kimenete rovidre // van zarva, ezert kikapcsolta az adast. (nem feltetlenul veszi eszre // a kulso rovidzarat) // A veteli oldal csomagjainak lancolt listai, debug celokra: Rx ring: rafutott: 0 lastcheck: 50845731, jiffies: 51314281 base: 017b1858 rx_desc_ptr: 0 rx_desc_ptr: 017b1858 hw_curr_ptr: 017b1858 06040000 017b1868 017b1898 c016ff00 06040000 017b1878 017b1e9c c016ff00 46040000 017b1888 017b24a0 c016ff00 06040000 017b1858 017b2aa4 c016ff00 // A kartyat hasznalo tobbi interfesz: a 0-s channel-group a comx1 interfesz, // es az 1,2,...,16 timeslotok tartoznak hozza: Interfaces using this board: (channel-group, interface, timeslots) 0 comx1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 comx2: 17 2 comx3: 18 3 comx4: 19 4 comx5: 20 5 comx6: 21 6 comx7: 22 7 comx8: 23 8 comx9: 24 9 comx10: 25 10 comx11: 26 11 comx12: 27 12 comx13: 28 13 comx14: 29 14 comx15: 30 15 comx16: 31 // Hany esemenyt kezelt le a driver egy-egy hardver-interrupt kiszolgalasanal: Interrupt work histogram: hist[ 0]: 0 hist[ 1]: 2 hist[ 2]: 18574 hist[ 3]: 79 hist[ 4]: 14 hist[ 5]: 1 hist[ 6]: 0 hist[ 7]: 1 hist[ 8]: 0 hist[ 9]: 7 // Hany kikuldendo csomag volt mar a Tx-ringben amikor ujabb lett irva bele: Tx ring histogram: hist[ 0]: 2329 hist[ 1]: 0 hist[ 2]: 0 hist[ 3]: 0 // Az E1-interfesz hiba-szamlaloi, az rfc2495-nek megfeleloen: // (kb. a Cisco routerek "show controllers e1" formatumaban: http://www.cisco.com/univercd/cc/td/doc/product/software/ios11/rbook/rinterfc.htm#xtocid25669126) Data in current interval (91 seconds elapsed): 9516 Line Code Violations, 65 Path Code Violations, 2 E-Bit Errors 0 Slip Secs, 2 Fr Loss Secs, 2 Line Err Secs, 0 Degraded Mins 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 11 Unavail Secs Data in Interval 1 (15 minutes): 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs Data in last 4 intervals (1 hour): 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs Data in last 96 intervals (24 hours): 0 Line Code Violations, 0 Path Code Violations, 0 E-Bit Errors 0 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins 0 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs ----------------------------------------------------------------- Nehany kulonlegesebb beallitasi lehetoseg (idovel beepulhetnek majd a driverbe): Ezekkel sok galibat lehet okozni, nagyon ovatosan kell oket hasznalni! modified CRC-4, for improved interworking of CRC-4 and non-CRC-4 devices: (lasd page 107 es g706 Annex B) lbireg[ 0x1b ] |= 0x08 lbireg[ 0x1c ] |= 0xc0 - ilyenkor ertelmezett az NMF - 'No Multiframe alignment Found after 400 msec' alarm. FALC - a vonali meghajto IC local loop - a sajat adasomat halljam vissza remote loop - a kivulrol jovo adast adom vissza Egy hibakeresesre hasznalhato dolog: - 1-es timeslot local loop a FALC-ban: echo >lbireg 0x1d 0x21 - local loop kikapcsolasa: echo >lbireg 0x1d 0x00