|
|
1.1 ! root 1: /****************************************************************************** ! 2: * Copyright (c) 2004, 2008 IBM Corporation ! 3: * All rights reserved. ! 4: * This program and the accompanying materials ! 5: * are made available under the terms of the BSD License ! 6: * which accompanies this distribution, and is available at ! 7: * http://www.opensource.org/licenses/bsd-license.php ! 8: * ! 9: * Contributors: ! 10: * IBM Corporation - initial implementation ! 11: *****************************************************************************/ ! 12: ! 13: #ifndef _UDP_H ! 14: #define _UDP_H ! 15: ! 16: #include <types.h> ! 17: ! 18: #define IPTYPE_UDP 17 ! 19: ! 20: #define UDPPORT_BOOTPS 67 /**< UDP port of BootP/DHCP-server */ ! 21: #define UDPPORT_BOOTPC 68 /**< UDP port of BootP/DHCP-client */ ! 22: #define UDPPORT_DNSS 53 /**< UDP port of DNS-server */ ! 23: #define UDPPORT_DNSC 32769 /**< UDP port of DNS-client */ ! 24: #define UDPPORT_TFTPC 2001 /**< UDP port of TFTP-client */ ! 25: #define UDPPORT_DHCPV6C 546 /**< UDP port of DHCPv6-client */ ! 26: ! 27: /** \struct udphdr ! 28: * A header for UDP-packets. ! 29: * For more information see RFC 768. ! 30: */ ! 31: struct udphdr { ! 32: uint16_t uh_sport; /**< Source port */ ! 33: uint16_t uh_dport; /**< Destinantion port */ ! 34: uint16_t uh_ulen; /**< Length in octets, incl. this header and data */ ! 35: uint16_t uh_sum; /**< Checksum */ ! 36: }; ! 37: typedef struct udphdr udp_hdr_t; ! 38: ! 39: typedef int32_t *(*handle_upper_udp_t)(uint8_t *, int32_t); ! 40: typedef void *(*handle_upper_udp_dun_t)(uint8_t); ! 41: ! 42: /* Handles UDP-packets that are detected by any network layer. */ ! 43: extern int8_t handle_udp(uint8_t * udp_packet, int32_t packetsize); ! 44: ! 45: /* Handles UDP related ICMP-Dest.Unreachable packets that are detected by ! 46: * the network layers. */ ! 47: extern void handle_udp_dun(uint8_t * udp_packet, uint32_t packetsize, uint8_t err_code); ! 48: ! 49: /* fills udp header */ ! 50: extern void fill_udphdr(uint8_t *packet, uint16_t packetsize, ! 51: uint16_t src_port, uint16_t dest_port); ! 52: ! 53: #ifdef USE_MTFTP ! 54: extern void net_set_tftp_port(uint16_t tftp_port); ! 55: extern void net_set_mtftp_port(uint16_t tftp_port); ! 56: #endif ! 57: ! 58: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.