|
16 | 16 | #endif |
17 | 17 |
|
18 | 18 | #undef WOLFIP_MAX_INTERFACES |
19 | | -#define WOLFIP_MAX_INTERFACES 2 |
| 19 | +#define WOLFIP_MAX_INTERFACES 3 |
20 | 20 |
|
21 | 21 | #include "check.h" |
22 | 22 | #include "../../config.h" |
23 | 23 |
|
| 24 | +#if WOLFIP_ENABLE_LOOPBACK |
| 25 | +#define TEST_PHYS_IF 1U |
| 26 | +#define TEST_WG_IF 2U |
| 27 | +#else |
| 28 | +#define TEST_PHYS_IF 0U |
| 29 | +#define TEST_WG_IF 1U |
| 30 | +#endif |
| 31 | + |
24 | 32 | /* Override after config.h */ |
25 | 33 | #undef MAX_UDPSOCKETS |
26 | 34 | #define MAX_UDPSOCKETS 8 |
@@ -206,46 +214,46 @@ static void setup_loopback_stacks(uint64_t *now) |
206 | 214 | wolfIP_init(&stack_a); |
207 | 215 |
|
208 | 216 | /* Physical interface (non_ethernet, index 0) */ |
209 | | - ll = wolfIP_getdev_ex(&stack_a, 0); |
| 217 | + ll = wolfIP_getdev_ex(&stack_a, TEST_PHYS_IF); |
210 | 218 | ll->non_ethernet = 1; |
211 | 219 | ll->poll = phys_a_poll; |
212 | 220 | ll->send = phys_a_send; |
213 | 221 | strncpy(ll->ifname, "eth_a", sizeof(ll->ifname) - 1); |
214 | 222 |
|
215 | | - wolfIP_ipconfig_set(&stack_a, MAKE_IP4(192,168,1,1), |
216 | | - MAKE_IP4(255,255,255,0), 0); |
| 223 | + wolfIP_ipconfig_set_ex(&stack_a, TEST_PHYS_IF, MAKE_IP4(192,168,1,1), |
| 224 | + MAKE_IP4(255,255,255,0), 0); |
217 | 225 |
|
218 | 226 | /* wolfGuard on interface 1 (wg0) */ |
219 | | - ck_assert_int_eq(wolfguard_init(&wg_dev_a, &stack_a, 1, 51820), 0); |
| 227 | + ck_assert_int_eq(wolfguard_init(&wg_dev_a, &stack_a, TEST_WG_IF, 51820), 0); |
220 | 228 |
|
221 | 229 | /* Generate and set keys for A */ |
222 | 230 | wc_RNG_GenerateBlock(&test_rng, priv_a, WG_PRIVATE_KEY_LEN); |
223 | 231 | ck_assert_int_eq(wolfguard_set_private_key(&wg_dev_a, priv_a), 0); |
224 | 232 |
|
225 | | - wolfIP_ipconfig_set_ex(&stack_a, 1, MAKE_IP4(10,0,0,1), |
| 233 | + wolfIP_ipconfig_set_ex(&stack_a, TEST_WG_IF, MAKE_IP4(10,0,0,1), |
226 | 234 | MAKE_IP4(255,255,255,0), 0); |
227 | 235 |
|
228 | 236 | /* Stack B */ |
229 | 237 | wolfIP_init(&stack_b); |
230 | 238 |
|
231 | 239 | /* Physical interface (non_ethernet, index 0) */ |
232 | | - ll = wolfIP_getdev_ex(&stack_b, 0); |
| 240 | + ll = wolfIP_getdev_ex(&stack_b, TEST_PHYS_IF); |
233 | 241 | ll->non_ethernet = 1; |
234 | 242 | ll->poll = phys_b_poll; |
235 | 243 | ll->send = phys_b_send; |
236 | 244 | strncpy(ll->ifname, "eth_b", sizeof(ll->ifname) - 1); |
237 | 245 |
|
238 | | - wolfIP_ipconfig_set(&stack_b, MAKE_IP4(192,168,1,2), |
239 | | - MAKE_IP4(255,255,255,0), 0); |
| 246 | + wolfIP_ipconfig_set_ex(&stack_b, TEST_PHYS_IF, MAKE_IP4(192,168,1,2), |
| 247 | + MAKE_IP4(255,255,255,0), 0); |
240 | 248 |
|
241 | 249 | /* wolfGuard on interface 1 (wg0) */ |
242 | | - ck_assert_int_eq(wolfguard_init(&wg_dev_b, &stack_b, 1, 51820), 0); |
| 250 | + ck_assert_int_eq(wolfguard_init(&wg_dev_b, &stack_b, TEST_WG_IF, 51820), 0); |
243 | 251 |
|
244 | 252 | /* Generate and set keys for B */ |
245 | 253 | wc_RNG_GenerateBlock(&test_rng, priv_b, WG_PRIVATE_KEY_LEN); |
246 | 254 | ck_assert_int_eq(wolfguard_set_private_key(&wg_dev_b, priv_b), 0); |
247 | 255 |
|
248 | | - wolfIP_ipconfig_set_ex(&stack_b, 1, MAKE_IP4(10,0,0,2), |
| 256 | + wolfIP_ipconfig_set_ex(&stack_b, TEST_WG_IF, MAKE_IP4(10,0,0,2), |
249 | 257 | MAKE_IP4(255,255,255,0), 0); |
250 | 258 |
|
251 | 259 | /* Add peers (A knows B, B knows A) */ |
@@ -798,50 +806,50 @@ START_TEST(test_multi_peer) |
798 | 806 |
|
799 | 807 | /* Stack A (hub, 2 peers) */ |
800 | 808 | wolfIP_init(&stack_a); |
801 | | - ll = wolfIP_getdev_ex(&stack_a, 0); |
| 809 | + ll = wolfIP_getdev_ex(&stack_a, TEST_PHYS_IF); |
802 | 810 | ll->non_ethernet = 1; |
803 | 811 | ll->poll = phys_a_poll_multi; |
804 | 812 | ll->send = phys_a_send_multi; |
805 | 813 | strncpy(ll->ifname, "eth_a", sizeof(ll->ifname) - 1); |
806 | | - wolfIP_ipconfig_set(&stack_a, MAKE_IP4(192,168,1,1), |
807 | | - MAKE_IP4(255,255,255,0), 0); |
| 814 | + wolfIP_ipconfig_set_ex(&stack_a, TEST_PHYS_IF, MAKE_IP4(192,168,1,1), |
| 815 | + MAKE_IP4(255,255,255,0), 0); |
808 | 816 |
|
809 | | - ck_assert_int_eq(wolfguard_init(&wg_dev_a, &stack_a, 1, 51820), 0); |
| 817 | + ck_assert_int_eq(wolfguard_init(&wg_dev_a, &stack_a, TEST_WG_IF, 51820), 0); |
810 | 818 | wc_RNG_GenerateBlock(&test_rng, priv_a, WG_PRIVATE_KEY_LEN); |
811 | 819 | ck_assert_int_eq(wolfguard_set_private_key(&wg_dev_a, priv_a), 0); |
812 | | - wolfIP_ipconfig_set_ex(&stack_a, 1, MAKE_IP4(10,0,0,1), |
| 820 | + wolfIP_ipconfig_set_ex(&stack_a, TEST_WG_IF, MAKE_IP4(10,0,0,1), |
813 | 821 | MAKE_IP4(255,0,0,0), 0); |
814 | 822 |
|
815 | 823 | /* Stack B */ |
816 | 824 | wolfIP_init(&stack_b); |
817 | | - ll = wolfIP_getdev_ex(&stack_b, 0); |
| 825 | + ll = wolfIP_getdev_ex(&stack_b, TEST_PHYS_IF); |
818 | 826 | ll->non_ethernet = 1; |
819 | 827 | ll->poll = phys_b_poll; |
820 | 828 | ll->send = phys_b_send; |
821 | 829 | strncpy(ll->ifname, "eth_b", sizeof(ll->ifname) - 1); |
822 | | - wolfIP_ipconfig_set(&stack_b, MAKE_IP4(192,168,1,2), |
823 | | - MAKE_IP4(255,255,255,0), 0); |
| 830 | + wolfIP_ipconfig_set_ex(&stack_b, TEST_PHYS_IF, MAKE_IP4(192,168,1,2), |
| 831 | + MAKE_IP4(255,255,255,0), 0); |
824 | 832 |
|
825 | | - ck_assert_int_eq(wolfguard_init(&wg_dev_b, &stack_b, 1, 51820), 0); |
| 833 | + ck_assert_int_eq(wolfguard_init(&wg_dev_b, &stack_b, TEST_WG_IF, 51820), 0); |
826 | 834 | wc_RNG_GenerateBlock(&test_rng, priv_b, WG_PRIVATE_KEY_LEN); |
827 | 835 | ck_assert_int_eq(wolfguard_set_private_key(&wg_dev_b, priv_b), 0); |
828 | | - wolfIP_ipconfig_set_ex(&stack_b, 1, MAKE_IP4(10,0,1,1), |
| 836 | + wolfIP_ipconfig_set_ex(&stack_b, TEST_WG_IF, MAKE_IP4(10,0,1,1), |
829 | 837 | MAKE_IP4(255,255,255,0), 0); |
830 | 838 |
|
831 | 839 | /* Stack C */ |
832 | 840 | wolfIP_init(&stack_c); |
833 | | - ll = wolfIP_getdev_ex(&stack_c, 0); |
| 841 | + ll = wolfIP_getdev_ex(&stack_c, TEST_PHYS_IF); |
834 | 842 | ll->non_ethernet = 1; |
835 | 843 | ll->poll = phys_c_poll; |
836 | 844 | ll->send = phys_c_send; |
837 | 845 | strncpy(ll->ifname, "eth_c", sizeof(ll->ifname) - 1); |
838 | | - wolfIP_ipconfig_set(&stack_c, MAKE_IP4(192,168,1,3), |
839 | | - MAKE_IP4(255,255,255,0), 0); |
| 846 | + wolfIP_ipconfig_set_ex(&stack_c, TEST_PHYS_IF, MAKE_IP4(192,168,1,3), |
| 847 | + MAKE_IP4(255,255,255,0), 0); |
840 | 848 |
|
841 | | - ck_assert_int_eq(wolfguard_init(&wg_dev_c, &stack_c, 1, 51820), 0); |
| 849 | + ck_assert_int_eq(wolfguard_init(&wg_dev_c, &stack_c, TEST_WG_IF, 51820), 0); |
842 | 850 | wc_RNG_GenerateBlock(&test_rng, priv_c, WG_PRIVATE_KEY_LEN); |
843 | 851 | ck_assert_int_eq(wolfguard_set_private_key(&wg_dev_c, priv_c), 0); |
844 | | - wolfIP_ipconfig_set_ex(&stack_c, 1, MAKE_IP4(10,0,2,1), |
| 852 | + wolfIP_ipconfig_set_ex(&stack_c, TEST_WG_IF, MAKE_IP4(10,0,2,1), |
845 | 853 | MAKE_IP4(255,255,255,0), 0); |
846 | 854 |
|
847 | 855 | /* Add peers */ |
|
0 commit comments