blob: e0b06b7ee14136e55f6b4a61278f874b7142b117 [file] [log] [blame]
/*
* Copyright (c) 2017 Intel Corporation.
* Copyright (c) 2018 Nordic Semiconductor ASA.
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <zephyr/kernel.h>
/* Value of 0 will cause the IP stack to select next free port */
#define MY_PORT 0
#define PEER_PORT 4242
#if defined(CONFIG_USERSPACE)
#include <zephyr/app_memory/app_memdomain.h>
extern struct k_mem_partition app_partition;
extern struct k_mem_domain app_domain;
#define APP_BMEM K_APP_BMEM(app_partition)
#define APP_DMEM K_APP_DMEM(app_partition)
#else
#define APP_BMEM
#define APP_DMEM
#endif
#if defined(CONFIG_NET_TC_THREAD_PREEMPTIVE)
#define THREAD_PRIORITY K_PRIO_PREEMPT(8)
#else
#define THREAD_PRIORITY K_PRIO_COOP(CONFIG_NUM_COOP_PRIORITIES - 1)
#endif
#define UDP_STACK_SIZE 2048
struct udp_control {
struct k_poll_signal tx_signal;
struct k_timer tx_timer;
struct k_timer rx_timer;
};
struct data {
const char *proto;
struct {
int sock;
uint32_t expecting;
uint32_t counter;
uint32_t mtu;
struct udp_control *ctrl;
} udp;
struct {
int sock;
uint32_t expecting;
uint32_t received;
uint32_t counter;
} tcp;
};
struct configs {
struct data ipv4;
struct data ipv6;
};
#if !defined(CONFIG_NET_CONFIG_PEER_IPV4_ADDR)
#define CONFIG_NET_CONFIG_PEER_IPV4_ADDR ""
#endif
#if !defined(CONFIG_NET_CONFIG_PEER_IPV6_ADDR)
#define CONFIG_NET_CONFIG_PEER_IPV6_ADDR ""
#endif
extern const char lorem_ipsum[];
extern const int ipsum_len;
extern struct configs conf;
#if defined(CONFIG_NET_UDP)
/* init_udp initializes kernel objects, hence it has to be called from
* supervisor thread.
*/
void init_udp(void);
int start_udp(void);
int process_udp(void);
void stop_udp(void);
#else
static inline void init_udp(void) { }
static inline int start_udp(void) { return 0; }
static inline int process_udp(void) { return 0; }
static inline void stop_udp(void) { }
#endif /* defined(CONFIG_NET_UDP) */
int start_tcp(void);
int process_tcp(void);
void stop_tcp(void);
#if defined(CONFIG_NET_VLAN)
int init_vlan(void);
#else
static inline int init_vlan(void)
{
return 0;
}
#endif