Lines Matching defs:netif
49 #include "lwip/netif.h"
55 #include "netif/etharp.h"
89 struct netif *netif;
101 #define netif_get_dhcps(netif) ((struct dhcps*)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCPS))
102 #define netif_set_dhcps(netif, dhcps) netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCPS, dhcps)
117 LWIP_STATIC void handle_discover(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg,
119 LWIP_STATIC ip4_addr_t validate_request_message(struct netif *netif, struct dhcp_msg *client_msg,
121 LWIP_STATIC void handle_request(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg,
123 LWIP_STATIC void handle_decline(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg,
125 LWIP_STATIC void handle_inform(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg);
126 LWIP_STATIC void handle_client_messages(struct netif *netif, struct dhcps *dhcps,
221 (htonl(dhcps->start_addr.addr + (u32_t)i) != ip_2_ip4(&dhcps->netif->ip_addr)->addr)) {
267 (ntohl(client_ip.addr) == ip_2_ip4(&dhcps->netif->ip_addr)->addr)) {
335 LWIP_STATIC void handle_discover(struct netif *netif, struct dhcps *dhcps,
377 dhcp_common_option_long(srvr_msg, ntohl(ip_2_ip4(&netif->ip_addr)->addr), &options_len);
379 /* netif already holds the Server ID in network order. so, no need to convert it again */
381 dhcp_common_option_long(srvr_msg, ntohl(ip_2_ip4(&netif->ip_addr)->addr), &options_len);
395 dhcp_common_option_long(srvr_msg, ntohl(ip4_addr_get_u32(ip_2_ip4(&netif->netmask))), &options_len);
402 (void)udp_sendto_if_src(dhcps->pcb, out_msg, &dst_addr, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
408 (void)udp_sendto_if_src(dhcps->pcb, out_msg, IP_ADDR_BROADCAST, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
428 (void)udp_sendto_if_src(dhcps->pcb, out_msg, &client_ipaddr, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
440 (void)udp_sendto_if_src(dhcps->pcb, out_msg, IP_ADDR_BROADCAST, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
451 LWIP_STATIC ip4_addr_t validate_request_message(struct netif *netif, struct dhcp_msg *client_msg,
454 struct dhcps *dhcps = netif_get_dhcps(netif);
471 if (serverid.addr != ip_2_ip4(&netif->ip_addr)->addr) {
519 if (htonl(requested_ip.addr) == ip_2_ip4(&netif->ip_addr)->addr) {
528 LWIP_STATIC void handle_request(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg,
543 requested_ip = validate_request_message(netif, client_msg, client_lease, serverid);
558 dhcp_common_option_long(srvr_msg, ntohl(ip_2_ip4(&netif->ip_addr)->addr), &options_len);
562 dhcp_common_option_long(srvr_msg, ntohl(ip_2_ip4(&netif->ip_addr)->addr), &options_len);
592 dhcp_common_option_long(srvr_msg, ntohl(ip_2_ip4(&netif->netmask)->addr), &options_len);
619 (void)udp_sendto_if_src(dhcps->pcb, out_msg, &dst_addr, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
622 (void)udp_sendto_if_src(dhcps->pcb, out_msg, IP_ADDR_BROADCAST, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
644 (void)udp_sendto_if_src(dhcps->pcb, out_msg, &ip_send, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
659 LWIP_STATIC void handle_decline(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg,
680 LWIP_STATIC void handle_inform(struct netif *netif, struct dhcps *dhcps, struct dhcp_msg *client_msg)
711 (void)udp_sendto_if_src(dhcps->pcb, out_msg, &dst_addr, DHCP_CLIENT_PORT, netif, &(netif->ip_addr));
719 LWIP_STATIC void handle_client_messages(struct netif *netif, struct dhcps *dhcps,
727 handle_discover(netif, dhcps, client_msg, client_lease);
730 handle_request(netif, dhcps, client_msg, client_lease, serverid);
733 handle_decline(netif, dhcps, client_msg, client_lease);
745 handle_inform(netif, dhcps, client_msg);
760 struct netif *netif = (struct netif *)arg;
761 struct dhcps *dhcps = netif_get_dhcps(netif);
834 /* Parse options would have changed it to host order. But, we have our IP stored in netif in network order */
844 if ((!ip4_addr_cmp(&serverid, ip_2_ip4(&netif->ip_addr))) &&
851 handle_client_messages(netif, dhcps, client_msg, serverid, msg_type);
857 err_t dhcps_start(struct netif *netif, const char *start_ip, u16_t ip_num)
863 LWIP_ERROR("netif != NULL", (netif != NULL), return ERR_ARG);
864 dhcps = netif_get_dhcps(netif);
867 ("dhcps_start(netif=%p) %s\n", (void *)netif, netif_get_name(netif)));
869 if (netif->mtu < DHCP_MAX_MSG_LEN_MIN_REQUIRED) {
871 ("MTU =%"U16_F",DHCP Msg Len Required =%"U32_F"\n", netif->mtu, DHCP_MAX_MSG_LEN_MIN_REQUIRED));
899 /* bind dhcp udp_pcb to specific netif, this could make dhcp server start on multiple netif */
900 dhcps->pcb->ifindex = netif->ifindex;
904 dhcps->start_addr.addr = ntohl(ip_2_ip4(&netif->ip_addr)->addr & ip_2_ip4(&netif->netmask)->addr) + 1;
905 dhcps->end_addr.addr = ntohl(ip_2_ip4(&netif->ip_addr)->addr | (~ip_2_ip4(&netif->netmask)->addr)) - 1;
918 if (!ip4_addr_netcmp((&address_in_hton), ip_2_ip4(&netif->ip_addr), ip_2_ip4(&netif->netmask)) ||
919 ip4_addr_isbroadcast((&address_in_hton), netif)) {
928 if (!ip4_addr_netcmp((&address_in_hton), ip_2_ip4(&netif->ip_addr), ip_2_ip4(&netif->netmask)) ||
929 ip4_addr_isbroadcast((&address_in_hton), netif)) {
930 dhcps->end_addr.addr = ntohl(ip_2_ip4(&netif->ip_addr)->addr | (~ip_2_ip4(&netif->netmask)->addr)) - 1;
935 dhcps->netif = netif;
950 udp_recv(dhcps->pcb, dhcps_recv, netif);
954 ("dhcps_start(): DHCPS Conf:: netif addr = %"U32_F" dhcps start addr%"U32_F" dhcp end addr%"U32_F"\n",
955 ip_2_ip4(&netif->ip_addr)->addr, dhcps->start_addr.addr, dhcps->end_addr.addr));
960 netif_set_dhcps(netif, dhcps);
964 void dhcps_stop(struct netif *netif)
966 LWIP_ERROR("dhcps_stop: netif != NULL", (netif != NULL), return);
967 struct dhcps *dhcps = netif_get_dhcps(netif);
977 netif_set_dhcps(netif, NULL);