mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 21:11:03 +03:00
[peerdist] Add support for constructing and decoding discovery messages
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -246,6 +246,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
#define ERRFILE_rndis ( ERRFILE_NET | 0x003d0000 )
|
||||
#define ERRFILE_pccrc ( ERRFILE_NET | 0x003e0000 )
|
||||
#define ERRFILE_stp ( ERRFILE_NET | 0x003f0000 )
|
||||
#define ERRFILE_pccrd ( ERRFILE_NET | 0x00400000 )
|
||||
|
||||
#define ERRFILE_image ( ERRFILE_IMAGE | 0x00000000 )
|
||||
#define ERRFILE_elf ( ERRFILE_IMAGE | 0x00010000 )
|
||||
|
||||
47
src/include/ipxe/pccrd.h
Normal file
47
src/include/ipxe/pccrd.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#ifndef _IPXE_PCCRD_H
|
||||
#define _IPXE_PCCRD_H
|
||||
|
||||
/** @file
|
||||
*
|
||||
* Peer Content Caching and Retrieval: Discovery Protocol [MS-PCCRD]
|
||||
*
|
||||
*/
|
||||
|
||||
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
|
||||
/** PeerDist discovery port */
|
||||
#define PEERDIST_DISCOVERY_PORT 3702
|
||||
|
||||
/** PeerDist discovery IPv4 address (239.255.255.250) */
|
||||
#define PEERDIST_DISCOVERY_IPV4 \
|
||||
( ( 239 << 24 ) | ( 255 << 16 ) | ( 255 << 8 ) | ( 250 << 0 ) )
|
||||
|
||||
/** PeerDist discovery IPv6 address (ff02::c) */
|
||||
#define PEERDIST_DISCOVERY_IPV6 \
|
||||
{ 0xff, 0x02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xc }
|
||||
|
||||
/** A PeerDist discovery reply block count */
|
||||
struct peerdist_discovery_block_count {
|
||||
/** Count (as an eight-digit hex value) */
|
||||
char hex[8];
|
||||
} __attribute__ (( packed ));
|
||||
|
||||
/** A PeerDist discovery reply */
|
||||
struct peerdist_discovery_reply {
|
||||
/** List of segment ID strings
|
||||
*
|
||||
* The list is terminated with a zero-length string.
|
||||
*/
|
||||
char *ids;
|
||||
/** List of peer locations
|
||||
*
|
||||
* The list is terminated with a zero-length string.
|
||||
*/
|
||||
char *locations;
|
||||
};
|
||||
|
||||
extern char * peerdist_discovery_request ( const char *uuid, const char *id );
|
||||
extern int peerdist_discovery_reply ( char *data, size_t len,
|
||||
struct peerdist_discovery_reply *reply );
|
||||
|
||||
#endif /* _IPXE_PCCRD_H */
|
||||
Reference in New Issue
Block a user