SliceCOM adapter felhasznaloi dokumentacioja - 0.51 verziohoz

Bart�k Istv�n <bartoki@itc.hu>
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
		<M> MultiGate (COMX) synchronous
			<M> Support for MUNICH based boards: SliceCOM, PCICOM (NEW)
			<M> 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