- //printb(udp_dgram_len, 0x40);
- // TODO
- // Nuestro protocolo, por ahora un simple echo!
- netdev_read_start(udp_dgram_len-UDP_HEADER_SIZE);
- for (i = 0; i < udp_dgram_len-UDP_HEADER_SIZE; ++i)
- buf[i] = netdev_read_byte();
- netdev_read_end();
+ // Procesamos comando ELP y obtenemos tamaño de la
+ // respuesta
+ len = elp_read_process_command();
+ //printb(len, 0x02);
+
+ // Si el tamaño es 0, hubo error o no está soportado
+ if (!len)
+ goto drop;
+ //print(0x0004);
+
+ // FIXME por ahora no tenemos forma de 'abortar' el
+ // comando si el checksum es incorrecto, lo verificamos
+ // por deporte.
+ if (!udp_checksum_ok())
+ goto drop;
+ //print(0x0008);
+
+ // Terminamos recepción