[LiSA-Devel] basic message passing

Radu Rendec radu.rendec at ines.ro
Wed Mar 25 14:03:28 EET 2009


Programelul respectiv este pentru testat functionalitatea de socket *de
tip LiSA* (familia AF_SWITCH). Este un tip special de sockets
implementat de modulul switch, care permite pasarea anumitor pachete
speciale (ex CDP - aici ar trebui sa intre si BPDU pentru STP).

Ideea este ca pentru a putea primi aceste pachete, ele trebuie
identificate si deviate din codul de kernel:
* codul general de tratare a frame-urilor este in
lisa/linux-2.6/net/switch/sw.c, functia sw_handle_frame();
* codul de identificare de pachete este in
lisa/linux-2.6/net/switch/sw_socket.c, functia sw_socket_filter();

Scopul final este de a folosi acest mecanism pentru a captura pachetele
de STP. Pentru asta, ar trebui sa faci cateva modificari in modulul de
kernel:
* sa adaugi in struct net_switch_port (sw_private.h) un membru de tip
struct list_head pentru stp;
* sa modifici bind_switch_port() si sw_socket_filter() pentru pachetele
de stp;
* sa adaugi o constanta simbolica pentru tipul de pachete (stp).

Este ciudat ca nu ai vazut pachetele cu tcpdump pana nu ai schimbat
mac-ul. In mod normal, tcpdump pune placa in promiscuous mode, deci ar
trebui sa vezi _orice_ pachet.

Cele doua masini sunt legate direct cu cablu cross sau ai un switch
intre ele?

Radu

On Wed, 2009-03-25 at 04:17 -0700, Faur Andrei wrote:
> Ok, am setat doua masini virtuale cu kernelul configurat anterior. Pasii
> urmariti sunt :
> 
> pe fiecare masina :
>     modprobe switch
>     cd /lisa/userspace/cli
>     LD_LIBRARY_PATH=. ./swcli
>     configure terminal
>     interface eth0
> 
> Acum, am gasit in directorul /lisa/userspace/tests un program numit
> test_sock in care se face un receive si un send. Am impartit programul
> in doua, astfel ca pe una din masini fac send in timp ce pe cealalta fac
> receive. Am interceptat cu tcpdump (pe masina sender) pachetul transmis
> de programul send si imi arata : 
> 06:07:08:09:0a:0b (oui Unknown) > 00:01:02:03:04:05 (oui Unknown).
> Pe masina receiver, tcpdump nu imi arata nimic. Am schimbat MAC-ul
> de pe receiver in 00:01:02:03:04:05 si acum tcpdump imi arata ca primeste
> pachetul insa programul recv tot nu il receptioneaza. Any ideeas?
> 
> On a side note : de unde isi ia programul test_recv respectivele adrese MAC?
> 
> Andrei.
> 
> 
>       
> _______________________________________________
> LiSA-Devel mailing list
> LiSA-Devel at lisa.ines.ro
> http://lisa.ines.ro/mailman/listinfo/lisa-devel



More information about the LiSA-Devel mailing list