X-Git-Url: https://git.llucax.com/z.facultad/66.09/etherled.git/blobdiff_plain/cbf2122a2f610a2b92f1dfcb0f554b4bf7c4757e..f19e1e709f98c38cc5454339e58a0b13ba3cfbe0:/src/udp.h?ds=sidebyside diff --git a/src/udp.h b/src/udp.h index e9092f7..d08d03f 100644 --- a/src/udp.h +++ b/src/udp.h @@ -52,13 +52,16 @@ * */ +/** Tamaño de la cabecera UDP */ +#define UDP_HEADER_SIZE 8 + /** Puerto UDP nuestro */ extern uint16 udp_port_local; /** Puerto UDP de destino */ extern uint16 udp_port_remote; -/** Tamaño del datagrama UDP */ +/** Tamaño del datagrama UDP (no soportamos más de 255) */ extern byte udp_dgram_len; /** Lee la cabecera del datagrama UDP. @@ -69,8 +72,10 @@ extern byte udp_dgram_len; */ bool udp_read_dgram_header(); -/** Recibe un word del payload UDP chequeando el checksum. */ -uint16 udp_read_word(); +/** Recibe un word del payload UDP chequeando el checksum. + * @precond Hay que llamar antes a netdev_read_start() + */ +byte udp_read_byte(); /* Indica si el checksum calculado está ok */ bool udp_checksum_ok(); @@ -82,10 +87,14 @@ bool udp_checksum_ok(); */ void udp_write_dgram_header(); -/** Escribe un word al payload UDP chequeando el checksum. */ -void udp_write_word(uint16 w); +/** Escribe un word al payload UDP chequeando el checksum. + * @precond Hay que llamar antes a netdev_write_start() + */ +void udp_write_byte(byte b); -/* Escribe el checksum calculado al frame a enviar */ -void udp_write_checksum(); +/* Escribe el checksum calculado al frame a enviar + * @param offset Offset a partir de donde están las cabeceras UDP. + */ +void udp_write_checksum(byte offset); #endif /* _UDP_H_ */