1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2015 National Instruments
6 * Joe Hershberger <joe.hershberger@ni.com>
12 void sandbox_eth_disable_response(int index, bool disable);
14 void sandbox_eth_skip_timeout(void);
17 * sandbox_eth_arp_req_to_reply()
19 * Check for an arp request to be sent. If so, inject a reply
21 * @dev: device that received the packet
22 * @packet: pointer to the received pacaket buffer
23 * @len: length of received packet
24 * @return 0 if injected, -EAGAIN if not
26 int sandbox_eth_arp_req_to_reply(struct udevice *dev, void *packet,
30 * sandbox_eth_ping_req_to_reply()
32 * Check for a ping request to be sent. If so, inject a reply
34 * @dev: device that received the packet
35 * @packet: pointer to the received pacaket buffer
36 * @len: length of received packet
37 * @return 0 if injected, -EAGAIN if not
39 int sandbox_eth_ping_req_to_reply(struct udevice *dev, void *packet,
43 * sandbox_eth_recv_arp_req()
45 * Inject an ARP request for this target
47 * @dev: device that received the packet
48 * @return 0 if injected, -EOVERFLOW if not
50 int sandbox_eth_recv_arp_req(struct udevice *dev);
53 * sandbox_eth_recv_ping_req()
55 * Inject a ping request for this target
57 * @dev: device that received the packet
58 * @return 0 if injected, -EOVERFLOW if not
60 int sandbox_eth_recv_ping_req(struct udevice *dev);
65 * dev - device pointer
66 * pkt - pointer to the "sent" packet
69 typedef int sandbox_eth_tx_hand_f(struct udevice *dev, void *pkt,
73 * struct eth_sandbox_priv - memory for sandbox mock driver
75 * fake_host_hwaddr - MAC address of mocked machine
76 * fake_host_ipaddr - IP address of mocked machine
77 * disabled - Will not respond
78 * recv_packet_buffer - buffers of the packet returned as received
79 * recv_packet_length - lengths of the packet returned as received
80 * recv_packets - number of packets returned
81 * tx_handler - function to generate responses to sent packets
82 * priv - a pointer to some structure a test may want to keep track of
84 struct eth_sandbox_priv {
85 uchar fake_host_hwaddr[ARP_HLEN];
86 struct in_addr fake_host_ipaddr;
88 uchar * recv_packet_buffer[PKTBUFSRX];
89 int recv_packet_length[PKTBUFSRX];
91 sandbox_eth_tx_hand_f *tx_handler;
98 * handler - The func ptr to call on send. If NULL, set to default handler
100 void sandbox_eth_set_tx_handler(int index, sandbox_eth_tx_hand_f *handler);
105 * priv - priv void ptr to store in the device
107 void sandbox_eth_set_priv(int index, void *priv);