* This function will set network interface device IP address. * @NOTE it can only be called in the network interface device driver. * * @param netdev the network interface device to change * @param ip_addr the new IP address */
| 875 | * @param ip_addr the new IP address |
| 876 | */ |
| 877 | void netdev_low_level_set_ipaddr(struct netdev *netdev, const ip_addr_t *ip_addr) |
| 878 | { |
| 879 | RT_ASSERT(ip_addr); |
| 880 | |
| 881 | if (netdev && ip_addr_cmp(&(netdev->ip_addr), ip_addr) == 0) |
| 882 | { |
| 883 | ip_addr_copy(netdev->ip_addr, *ip_addr); |
| 884 | |
| 885 | #ifdef RT_USING_SAL |
| 886 | /* set network interface device flags to internet up */ |
| 887 | if (netdev_is_up(netdev) && netdev_is_link_up(netdev)) |
| 888 | { |
| 889 | sal_check_netdev_internet_up(netdev); |
| 890 | } |
| 891 | #endif /* RT_USING_SAL */ |
| 892 | |
| 893 | /* execute IP address change callback function */ |
| 894 | if (netdev->addr_callback) |
| 895 | { |
| 896 | netdev->addr_callback(netdev, NETDEV_CB_ADDR_IP); |
| 897 | } |
| 898 | } |
| 899 | } |
| 900 | |
| 901 | /** |
| 902 | * This function will set network interface device netmask address. |
no test coverage detected