Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István Szakirány Laboratórium beszámoló BME-TTT Készítette:Bartók István műszaki informatika szak, kommunikációs hálózatok szakirány Konzulensek:Tiszai Tamás,MTA-SZTAKI, Ziegler Gábor,BME Távközlési és Telematikai Tanszék Kovács Pál,BME Távközlési és Telematikai Tanszék Tanév:1999/2000 Téma címe: Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István Digitális bérelt vonalak nyalábolt átvitele
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István A 2 Mbit/s G.703/704 keretek felépítése Az időszeletben futó bérelt vonal
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István A 0. időszelet Szinkronizáció, jelzés, menedzsment
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István Az eszközmeghajtó helye a kernelben
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István init_module() - a modul betöltődésekor automatikusan meghívódik my_register() - az init_module() hívja meg - hardver detektálása - alapvető erőforrások biztosítása (dev allokálása, io-mapping) - dev struktúra részben kitöltése: - hálózati interfész neve - dev init = my_init - regisztrálja magát hálózati interfészként - register_netdev() my_init() - register_netdev() hívja meg, ő a “konstruktor” - dev struktúra teljes kitöltése: - függvények - változók (MTU, hard_header_len, Tx queue len) my_open() - ifconfig eth0 up hívja meg - IRQ, IO-tartomány kérése a rendszertől - hardver inicializálása - MOD_INC_USE_COUNT
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István my_stop() - ifconfig eth0 down hívja meg - IRQ, IO-tartomány felszabadítása - hardver lecsitítása, nehogy bajt okozzon - MOD_DEC_USE_COUNT cleanup_module() - a modul kitörlésekor hívódik meg - unregister_netdev() - minden erőforrás felszabadítása
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István my_header() - a hálózati réteg hívja meg - adatkapcsolati rétegbeli fejlécet készít a csomaghoz my_xmit() - a hálózati réteg hívja meg - beállítja a dev tbusy -t, ezzel jelzi hogy foglalt az adója - átadja a keretet a hardvernek
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István my_interrupt() - új keret érkezett? - behozza a keretet a hardverből - átadja a hálózati rétegnek - netif_rx() - elkészült az adással? - dev tbusy törlése (jelzi hogy szabad) - NET_BH megjelölése futásra - egyéb esemény
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István my_stats() - ifconfig eth0 hívja meg - az interfész statisztikáit adja vissza (vett, adott keretek, hibák)
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István my_ioctl() - programból ioctl() hívás
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István sk_buff - A csomagokat tároló struktúra protocol- 0x800 users- hivatkozás-számláló
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István linux# modprobe kszk_skeleton Dec 8 15:07:03 linux kernel: KSZK: init_module Dec 8 15:07:03 linux kernel: KSZK: kszk_register Dec 8 15:07:03 linux kernel: KSZK: kszk_register: KSZK board found, IRQ 9 Dec 8 15:07:03 linux kernel: KSZK: kszk_init Dec 8 15:07:03 linux kernel: KSZK: kszk_stats Dec 8 15:07:03 linux kernel: KSZK: kszk_register: kszk0 successfully registered linux# linux# lsmod Module Size Used by kszk_skeleton (unused) linux# linux# ifconfig kszk Dec 8 15:07:39 linux kernel: KSZK: kszk_open Dec 8 15:07:39 linux kernel: KSZK: kszk_stats linux# linux# route add -net netmask kszk0 linux# Mi van készen: a betölthető kernel modul...
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István linux# ping -c PING ( ): 56 data bytes Dec 8 15:08:55 linux kernel: KSZK: kszk_header Dec 8 15:08:55 linux kernel: KSZK: kszk_xmit Dec 8 15:08:55 linux kernel: KSZK: kszk_xmit: kszk0: transmitting packet Dec 8 15:08:56 linux kernel: KSZK: kszk_header Dec 8 15:09:01 linux kernel: KSZK: kszk_xmit Dec 8 15:09:01 linux kernel: KSZK: kszk_xmit: kszk0: transmitting packet Dec 8 15:09:01 linux kernel: KSZK: kszk_xmit: transmitter is busy, dropping packet! ping statistics packets transmitted, 0 packets received, 100% packet loss linux# ifconfig kszk0 Dec 8 15:09:13 linux kernel: KSZK: kszk_stats kszk0 Link encap:(Cisco)-HDLC inet addr: P-t-P: Mask: UP POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:1 errors:1 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:50 Interrupt:9 linux# … küldeni is tud,...
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István linux# linux# ifconfig kszk0 down Dec 8 15:16:01 linux kernel: KSZK: kszk_close Dec 8 15:16:01 linux kernel: KSZK: kszk_stats linux# rmmod kszk_skeleton Dec 8 15:16:01 linux kernel: KSZK: cleanup_module Dec 8 15:16:11 linux kernel: KSZK: kszk_stats linux# linux# lsmod Module Size Used by linux# …és ki is lehet törölni
Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhezBartók István Irodalomjegyzék Kovács Pál - Telecom Labor mérési jegyzőkönyvek ITU-T ajánlások ftp://ftp.ttt.bme.hu/ccitt/ccitt/1992/g/ Cisco dokumentációk Linux kernel programozási dokumentációk