OSDN Git Service

selftests: xsk: Introduce type for thread function
authorMagnus Karlsson <magnus.karlsson@intel.com>
Tue, 7 Sep 2021 07:19:10 +0000 (09:19 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 10 Sep 2021 19:15:30 +0000 (21:15 +0200)
Introduce a typedef of the thread function so this can be passed to
init_iface() in order to simplify that function.

Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Link: https://lore.kernel.org/bpf/20210907071928.9750-3-magnus.karlsson@gmail.com
tools/testing/selftests/bpf/xdpxceiver.c
tools/testing/selftests/bpf/xdpxceiver.h

index 9639d8d..edf5b6c 100644 (file)
@@ -974,10 +974,9 @@ static void testapp_stats(void)
        print_ksft_result();
 }
 
-static void init_iface(struct ifobject *ifobj, const char *dst_mac,
-                      const char *src_mac, const char *dst_ip,
-                      const char *src_ip, const u16 dst_port,
-                      const u16 src_port, enum fvector vector)
+static void init_iface(struct ifobject *ifobj, const char *dst_mac, const char *src_mac,
+                      const char *dst_ip, const char *src_ip, const u16 dst_port,
+                      const u16 src_port, enum fvector vector, thread_func_t func_ptr)
 {
        struct in_addr ip;
 
@@ -993,15 +992,13 @@ static void init_iface(struct ifobject *ifobj, const char *dst_mac,
        ifobj->dst_port = dst_port;
        ifobj->src_port = src_port;
 
-       if (vector == tx) {
-               ifobj->fv.vector = tx;
-               ifobj->func_ptr = worker_testapp_validate_tx;
+       if (vector == tx)
                ifdict_tx = ifobj;
-       } else {
-               ifobj->fv.vector = rx;
-               ifobj->func_ptr = worker_testapp_validate_rx;
+       else
                ifdict_rx = ifobj;
-       }
+
+       ifobj->fv.vector = vector;
+       ifobj->func_ptr = func_ptr;
 }
 
 static void run_pkt_test(int mode, int type)
@@ -1097,8 +1094,10 @@ int main(int argc, char **argv)
 
        parse_command_line(argc, argv);
 
-       init_iface(ifdict[tx], MAC1, MAC2, IP1, IP2, UDP_PORT1, UDP_PORT2, tx);
-       init_iface(ifdict[rx], MAC2, MAC1, IP2, IP1, UDP_PORT2, UDP_PORT1, rx);
+       init_iface(ifdict[tx], MAC1, MAC2, IP1, IP2, UDP_PORT1, UDP_PORT2, tx,
+                  worker_testapp_validate_tx);
+       init_iface(ifdict[rx], MAC2, MAC1, IP2, IP1, UDP_PORT2, UDP_PORT1, rx,
+                  worker_testapp_validate_rx);
 
        ksft_set_plan(TEST_MODE_MAX * TEST_TYPE_MAX);
 
index de80516..799d524 100644 (file)
@@ -116,6 +116,8 @@ struct pkt_stream {
        struct pkt *pkts;
 };
 
+typedef void *(*thread_func_t)(void *arg);
+
 struct ifobject {
        char ifname[MAX_INTERFACE_NAME_CHARS];
        char nsname[MAX_INTERFACES_NAMESPACE_CHARS];
@@ -123,8 +125,8 @@ struct ifobject {
        struct xsk_socket_info *xsk_arr;
        struct xsk_umem_info *umem;
        struct xsk_umem_info *umem_arr;
-       void *(*func_ptr)(void *arg);
        struct flow_vector fv;
+       thread_func_t func_ptr;
        struct pkt_stream *pkt_stream;
        int ns_fd;
        u32 dst_ip;