
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
