1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * wol - Wake-on-LAN
- *
- * Supports both Wake-on-LAN packet types:
- * - EtherType 0x0842 packets
- * - UDP packets on ports 0, 7 and 9.
- *
- * Copyright 2018 Lothar Felten, lothar.felten@gmail.com
- */
- #if defined(CONFIG_CMD_WOL)
- #ifndef __WOL_H__
- #define __WOL_H__
- #include <net.h>
- /**********************************************************************/
- #define WOL_SYNC_BYTE 0xFF
- #define WOL_SYNC_COUNT 6
- #define WOL_MAC_REPETITIONS 16
- #define WOL_DEFAULT_TIMEOUT 5000
- #define WOL_PASSWORD_4B 4
- #define WOL_PASSWORD_6B 6
- /*
- * Wake-on-LAN header
- */
- struct wol_hdr {
- u8 wol_sync[WOL_SYNC_COUNT]; /* sync bytes */
- u8 wol_dest[WOL_MAC_REPETITIONS * ARP_HLEN]; /* 16x MAC */
- u8 wol_passwd[0]; /* optional */
- };
- /*
- * Initialize wol (beginning of netloop)
- */
- void wol_start(void);
- /*
- * Check incoming Wake-on-LAN packet for:
- * - sync bytes
- * - sixteen copies of the target MAC address
- *
- * Optionally store the four or six byte password in the environment
- * variable "wolpassword"
- *
- * @param ip IP header in the packet
- * @param len Packet length
- */
- void wol_receive(struct ip_udp_hdr *ip, unsigned int len);
- /*
- * Set the timeout for the reception of a Wake-on-LAN packet
- *
- * @param timeout in milliseconds
- */
- void wol_set_timeout(ulong timeout);
- /**********************************************************************/
- #endif /* __WOL_H__ */
- #endif
|