01.01.2013 Views

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

...<br />

/* Network layer header */<br />

union<br />

{<br />

struct iphdr *iph;<br />

struct ipv6hdr *ipv6h;<br />

struct arphdr *arph;<br />

struct ipxhdr *ipxh;<br />

unsigned char *raw;<br />

} nh;<br />

/* Link layer header */<br />

union<br />

{<br />

struct ethhdr *ethernet;<br />

unsigned char *raw;<br />

} mac;<br />

Bom esta estrutura esta bem comentada neste pedaço o que nos ajuda<br />

bastante a compreendê-la, mas vamos em frente que quem anda pra trás<br />

é caranguejo e traveco!<br />

Vamos ver alguns pedaços interessantes para nossas experiencias com<br />

esta estrutura:<br />

Estes ponteiros são utilizados para nos referenciar dentro da lista<br />

encadeada, e apontam para a lista encadeada a qual pertencemos ( *list),<br />

não vamos mexer com eles nesta nossa primeira jornada :).<br />

struct sk_buff * next; /* Next buffer in list<br />

*/<br />

struct sk_buff * prev; /* Previous buffer in list<br />

*/<br />

struct sk_buff_head * list; /* List we are on<br />

No níel do kernel, os sockets são estruturas sock, aqui temos um<br />

ponteiro para o socket ao qual pertencemos, ou neste caso a struct sock<br />

que nos recebeu.<br />

struct sock *sk; /* Socket we are owned by<br />

*/<br />

Bem legal para quem quiser trabalhar com controles de tempo, temos<br />

aqui o timestamp em que fomos recebidos<br />

struct timeval stamp; /* Time we arrived<br />

Aqui temos outra estrutura muito importante e que é muito útil, abrindo<br />

várias opções para podermos explorar nosso maravilhoso mundo do<br />

networking dentro do kernel, a struct *dev, que será observada mais pra<br />

frente, por enquanto é interessante saber que ela representa um<br />

113

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!