160 likes | 235 Views
Szakirány Laboratórium beszámoló B ME-TTT. Készítette : Bart ók István műszaki informatika szak, kommunikációs hálózatok szakirány bartoki @sch.bme.hu Konzulensek: Tiszai Tam ás, MTA-SZTAKI, tiszai @sztaki.hu Ziegler G ábor, BME Távközlési és Telematikai Tanszék
E N D
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 bartoki@sch.bme.hu Konzulensek: Tiszai Tamás, MTA-SZTAKI, tiszai@sztaki.hu 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 rendszerhez Bartók István
Digitális bérelt vonalak nyalábolt átvitele Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartó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 rendszerhez Bartó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 rendszerhez Bartók István
Az eszközmeghajtó helye a kernelben Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartó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 - devinit = 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 uphí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 rendszerhez Bartó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 rendszerhez Bartó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 devtbusy -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 rendszerhez Bartó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? - devtbusy 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 rendszerhez Bartó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 rendszerhez Bartók István
my_ioctl() - programból ioctl() hívás Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartó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 rendszerhez Bartók István
Mi van készen: a betölthető kernel modul... 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 2100 0 (unused) linux# linux# ifconfig kszk0 10.0.0.1 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 10.0.0.0 netmask 255.255.255.0 kszk0 linux# Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartók István
… küldeni is tud, ... linux# ping -c 2 10.0.0.2 PING 10.0.0.2 (10.0.0.2): 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! --- 10.0.0.2 ping statistics --- 2 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:10.0.0.1 P-t-P:10.0.0.1 Mask:255.255.255.255 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# Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartók István
…és ki is lehet törölni 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# Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartók István
Irodalomjegyzék Kovács Pál - Telecom Labor mérési jegyzőkönyvek http://tel.ttt.bme.hu/meresek/ ITU-T ajánlások ftp://ftp.ttt.bme.hu/ccitt/ccitt/1992/g/ Cisco dokumentációk http://www.cisco.com/univercd Linux kernel programozási dokumentációk http://www.dit.upm.es/~jmseyas/linux/kernel/hackers-docs.html Bérelt vonali hálózati adapter illesztése Linux operációs rendszerhez Bartók István