@@ -580,6 +580,7 @@ int netdev_set_down(struct netdev *netdev)
580
580
return err ;
581
581
}
582
582
583
+ #ifdef RT_LWIP_DHCP
583
584
/**
584
585
* This function will control network interface device DHCP capability enable or disable.
585
586
*
@@ -609,6 +610,34 @@ int netdev_dhcp_enabled(struct netdev *netdev, rt_bool_t is_enabled)
609
610
return netdev -> ops -> set_dhcp (netdev , is_enabled );
610
611
}
611
612
613
+ int netdev_dhcp_open (char * netdev_name )
614
+ {
615
+ struct netdev * netdev = RT_NULL ;
616
+ netdev = netdev_get_by_name (netdev_name );
617
+ if (netdev == RT_NULL )
618
+ {
619
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
620
+ return -1 ;
621
+ }
622
+ netdev_dhcp_enabled (netdev , RT_TRUE );
623
+ return 0 ;
624
+ }
625
+
626
+ int netdev_dhcp_close (char * netdev_name )
627
+ {
628
+ struct netdev * netdev = RT_NULL ;
629
+
630
+ netdev = netdev_get_by_name (netdev_name );
631
+ if (netdev == RT_NULL )
632
+ {
633
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
634
+ return -1 ;
635
+ }
636
+ netdev_dhcp_enabled (netdev , RT_FALSE );
637
+ return 0 ;
638
+ }
639
+ #endif /* RT_LWIP_DHCP */
640
+
612
641
/**
613
642
* This function will set network interface device IP address.
614
643
*
@@ -739,6 +768,49 @@ int netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, const ip_addr_
739
768
return netdev -> ops -> set_dns_server (netdev , dns_num , (ip_addr_t * )dns_server );
740
769
}
741
770
771
+ /**
772
+ * This function will set network interface device IP, gateway and netmask address according to device name.
773
+ *
774
+ * @param netdev_name the network interface device name
775
+ * @param ip_addr the new IP address
776
+ * @param gw_addr the new gateway address
777
+ * @param nm_addr the new netmask address
778
+ */
779
+ void netdev_set_if (char * netdev_name , char * ip_addr , char * gw_addr , char * nm_addr )
780
+ {
781
+ struct netdev * netdev = RT_NULL ;
782
+ ip_addr_t addr ;
783
+
784
+ netdev = netdev_get_by_name (netdev_name );
785
+ if (netdev == RT_NULL )
786
+ {
787
+ rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
788
+ return ;
789
+ }
790
+
791
+ #ifdef RT_LWIP_DHCP
792
+ netdev_dhcp_close (netdev_name );
793
+ #endif
794
+
795
+ /* set IP address */
796
+ if ((ip_addr != RT_NULL ) && inet_aton (ip_addr , & addr ))
797
+ {
798
+ netdev_set_ipaddr (netdev , & addr );
799
+ }
800
+
801
+ /* set gateway address */
802
+ if ((gw_addr != RT_NULL ) && inet_aton (gw_addr , & addr ))
803
+ {
804
+ netdev_set_gw (netdev , & addr );
805
+ }
806
+
807
+ /* set netmask address */
808
+ if ((nm_addr != RT_NULL ) && inet_aton (nm_addr , & addr ))
809
+ {
810
+ netdev_set_netmask (netdev , & addr );
811
+ }
812
+ }
813
+
742
814
/**
743
815
* This function will set callback to be called when the network interface device status has been changed.
744
816
*
@@ -1172,70 +1244,6 @@ static void netdev_list_if(void)
1172
1244
}
1173
1245
}
1174
1246
1175
- #ifdef RT_LWIP_DHCP
1176
- int netdev_dhcp_open (char * netdev_name )
1177
- {
1178
- struct netdev * netdev = RT_NULL ;
1179
- netdev = netdev_get_by_name (netdev_name );
1180
- if (netdev == RT_NULL )
1181
- {
1182
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1183
- return -1 ;
1184
- }
1185
- netdev_dhcp_enabled (netdev ,RT_TRUE );
1186
- return 0 ;
1187
- }
1188
-
1189
- int netdev_dhcp_close (char * netdev_name )
1190
- {
1191
- struct netdev * netdev = RT_NULL ;
1192
-
1193
- netdev = netdev_get_by_name (netdev_name );
1194
- if (netdev == RT_NULL )
1195
- {
1196
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1197
- return -1 ;
1198
- }
1199
- netdev_dhcp_enabled (netdev ,RT_FALSE );
1200
- return 0 ;
1201
- }
1202
- #endif
1203
-
1204
- static void netdev_set_if (char * netdev_name , char * ip_addr , char * gw_addr , char * nm_addr )
1205
- {
1206
- struct netdev * netdev = RT_NULL ;
1207
- ip_addr_t addr ;
1208
-
1209
- netdev = netdev_get_by_name (netdev_name );
1210
- if (netdev == RT_NULL )
1211
- {
1212
- rt_kprintf ("bad network interface device name(%s).\n" , netdev_name );
1213
- return ;
1214
- }
1215
-
1216
- #ifdef RT_LWIP_DHCP
1217
- netdev_dhcp_close (netdev_name );
1218
- #endif
1219
-
1220
- /* set IP address */
1221
- if ((ip_addr != RT_NULL ) && inet_aton (ip_addr , & addr ))
1222
- {
1223
- netdev_set_ipaddr (netdev , & addr );
1224
- }
1225
-
1226
- /* set gateway address */
1227
- if ((gw_addr != RT_NULL ) && inet_aton (gw_addr , & addr ))
1228
- {
1229
- netdev_set_gw (netdev , & addr );
1230
- }
1231
-
1232
- /* set netmask address */
1233
- if ((nm_addr != RT_NULL ) && inet_aton (nm_addr , & addr ))
1234
- {
1235
- netdev_set_netmask (netdev , & addr );
1236
- }
1237
- }
1238
-
1239
1247
int netdev_ifconfig (int argc , char * * argv )
1240
1248
{
1241
1249
if (argc == 1 )
@@ -1429,7 +1437,7 @@ int netdev_ping(int argc, char **argv)
1429
1437
return 0 ;
1430
1438
}
1431
1439
MSH_CMD_EXPORT_ALIAS (netdev_ping , ping , ping network host );
1432
- #endif /* NETDEV_USING_IFCONFIG */
1440
+ #endif /* NETDEV_USING_PING */
1433
1441
1434
1442
static void netdev_list_dns (void )
1435
1443
{
0 commit comments