27 RCSIDH(dhcp_h,
"$Id: 4060daa8e946b236f96a375bb177fe5a5a9dd13d $")
40 typedef struct fr_pcap fr_pcap_t;
44 int fr_dhcp_send_pcap(fr_pcap_t *pcap, uint8_t *dst_ether_addr,
RADIUS_PACKET *packet);
61 #ifdef HAVE_LINUX_IF_PACKET_H
62 #include <linux/if_packet.h>
63 int fr_socket_packet(
int iface_index,
struct sockaddr_ll *p_ll);
73 #define PW_DHCP_OFFSET (1024)
97 #define DHCP_MAGIC_VENDOR (54)
99 #define PW_DHCP_OPTION_82 (82)
100 #define DHCP_PACK_OPTION1(x,y) ((x) | ((y) << 8))
101 #define DHCP_BASE_ATTR(x) (x & 0xff)
102 #define DHCP_UNPACK_OPTION1(x) (((x) & 0xff00) >> 8)
104 #define PW_DHCP_MESSAGE_TYPE (53)
105 #define PW_DHCP_YOUR_IP_ADDRESS (264)
106 #define PW_DHCP_SUBNET_MASK (1)
107 #define PW_DHCP_IP_ADDRESS_LEASE_TIME (51)
int fr_dhcp_add_arp_entry(int fd, char const *interface, VALUE_PAIR *hwvp, VALUE_PAIR *clvp)
ssize_t fr_dhcp_encode_option(uint8_t *out, size_t outlen, vp_cursor_t *cursor, void *encoder_ctx)
char const * dhcp_header_names[]
ssize_t fr_dhcp_decode_option(TALLOC_CTX *ctx, vp_cursor_t *cursor, fr_dict_attr_t const *parent, uint8_t const *data, size_t len, void *decoder_ctx)
int8_t fr_dhcp_attr_cmp(void const *a, void const *b)
Abstraction to allow iterating over different configurations of VALUE_PAIRs.
int fr_dhcp_encode(RADIUS_PACKET *packet)
int fr_dhcp_decode(RADIUS_PACKET *packet)
Stores an attribute, a value and various bits of other data.
char const * dhcp_message_types[]
int fr_dhcp_send_socket(RADIUS_PACKET *packet)
Send DHCP packet using socket.
RADIUS_PACKET * fr_dhcp_recv_socket(int sockfd)
Receive DHCP packet using socket.