File syn_dhcp.c¶
FileList > net > syn_dhcp.c
Go to the source code of this file
Zero-Heap Native DHCP Client Protocol Engine Implementation.
#include "syntropic/net/syn_dhcp.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_dhcp_build_discover (SYN_DHCP * dhcp, const uint8_t mac_addr, uint8_t * buf_out, size_t buf_size, size_t * len_out) Build a DHCPDISCOVER UDP packet payload. |
| SYN_Status | syn_dhcp_build_request (SYN_DHCP * dhcp, const uint8_t mac_addr, uint8_t * buf_out, size_t buf_size, size_t * len_out) Build a DHCPREQUEST UDP packet payload. |
| SYN_Status | syn_dhcp_init (SYN_DHCP * dhcp, uint32_t xid) Initialize DHCP Client Context. |
| SYN_Status | syn_dhcp_process_packet (SYN_DHCP * dhcp, SYN_ETH * eth, const uint8_t * dhcp_pkt, size_t len) Process incoming DHCP response packet payload (DHCPOFFER or DHCPACK). |
Public Static Functions¶
| Type | Name |
|---|---|
| void | pack_uint32 (uint8_t * buf, uint32_t val) Pack 32-bit integer in big-endian byte order. |
| uint32_t | unpack_uint32 (const uint8_t * buf) Unpack 32-bit integer from big-endian byte order. |
Public Functions Documentation¶
function syn_dhcp_build_discover¶
Build a DHCPDISCOVER UDP packet payload.
SYN_Status syn_dhcp_build_discover (
SYN_DHCP * dhcp,
const uint8_t mac_addr,
uint8_t * buf_out,
size_t buf_size,
size_t * len_out
)
Parameters:
dhcpPointer to DHCP context.mac_addr6-byte client MAC address.buf_outOutput buffer (must hold at least 250 bytes).buf_sizeOutput buffer capacity.len_outPointer to receive byte length of generated payload.
Returns:
SYN_OK on success.
function syn_dhcp_build_request¶
Build a DHCPREQUEST UDP packet payload.
SYN_Status syn_dhcp_build_request (
SYN_DHCP * dhcp,
const uint8_t mac_addr,
uint8_t * buf_out,
size_t buf_size,
size_t * len_out
)
Parameters:
dhcpPointer to DHCP context.mac_addr6-byte client MAC address.buf_outOutput buffer (must hold at least 260 bytes).buf_sizeOutput buffer capacity.len_outPointer to receive byte length of generated payload.
Returns:
SYN_OK on success.
function syn_dhcp_init¶
Initialize DHCP Client Context.
Parameters:
dhcpPointer to DHCP context.xid32-bit transaction ID (e.g. random value or tick count).
Returns:
SYN_OK on success.
function syn_dhcp_process_packet¶
Process incoming DHCP response packet payload (DHCPOFFER or DHCPACK).
SYN_Status syn_dhcp_process_packet (
SYN_DHCP * dhcp,
SYN_ETH * eth,
const uint8_t * dhcp_pkt,
size_t len
)
Parameters:
dhcpPointer to DHCP context.ethPointer to Ethernet context (updated automatically when BOUND).dhcp_pktPointer to incoming DHCP UDP payload.lenPayload byte length.
Returns:
SYN_OK on success, SYN_BUSY if still waiting/in-progress.
Public Static Functions Documentation¶
function pack_uint32¶
Pack 32-bit integer in big-endian byte order.
Parameters:
bufOutput byte buffer.val32-bit value to pack.
function unpack_uint32¶
Unpack 32-bit integer from big-endian byte order.
Parameters:
bufInput byte buffer.
Returns:
Unpacked 32-bit integer.
The documentation for this class was generated from the following file src/syntropic/net/syn_dhcp.c