+ len = udp_dgram_len - UDP_HEADER_SIZE;
+ netdev_read_start(len);
+ for (i = 0; i < len; ++i)
+ buf[i] = udp_read_byte();
+ netdev_read_end();
+ if (!udp_checksum_ok())
+ goto drop;
+ netdev_recv_end();
+
+ // Respuesta
+ netdev_send_start();
+ eth_write_frame_header();
+ //udp_dgram_len = UDP_HEADER_SIZE+len;
+ //ip_packet_len = IP_HEADER_SIZE+udp_dgram_len;
+ ip_write_packet_header();
+ udp_write_dgram_header();
+ netdev_write_start(len);
+ for (i = 0; i < len; ++i)
+ udp_write_byte(buf[i]);
+ netdev_write_end();
+ udp_write_checksum(ETH_HEADER_SIZE+IP_HEADER_SIZE);
+ netdev_send_end(ETH_HEADER_SIZE+IP_HEADER_SIZE+udp_dgram_len);