luid.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2017 Freie Universität Berlin
3  * SPDX-License-Identifier: LGPL-2.1-only
4  */
5 
6 #pragma once
7 
52 #include <stddef.h>
53 
54 #include "net/eui48.h"
55 #include "net/eui64.h"
56 #include "net/netdev.h"
57 
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
66 #ifndef LUID_BACKUP_SEED
67 #define LUID_BACKUP_SEED 0x23
68 #endif
69 
85 void luid_get(void *buf, size_t len);
86 
100 void luid_get_lb(void *buf, size_t len);
101 
114 
126 
139 
151 
164 
179 void luid_custom(void *buf, size_t len, uint16_t gen);
180 
192 void luid_base(void *buf, size_t len);
193 
194 #ifdef __cplusplus
195 }
196 #endif
197 
Definitions low-level network driver interface.
Definition and IPv6 IID conversion for IEEE EUI-48 identifiers.
EUI-64 data type definition.
void luid_get_lb(void *buf, size_t len)
Get a unique ID with change in the last byte.
void luid_custom(void *buf, size_t len, uint16_t gen)
Get a custom unique ID based on a user given generator value.
void luid_get_short(network_uint16_t *addr)
Get a unique short unicast address.
void luid_get_eui48(eui48_t *addr)
Get a unique EUI48 address.
void luid_netdev_get_eui48(const netdev_t *netdev, eui48_t *addr)
Get a unique EUI48 address.
void luid_netdev_get_eui64(const netdev_t *netdev, eui64_t *addr)
Get a unique EUI64 address.
void luid_base(void *buf, size_t len)
Get a LUID base value.
void luid_get_eui64(eui64_t *addr)
Get a unique EUI64 address.
void luid_get(void *buf, size_t len)
Get a unique ID.
Data type to represent an EUI-48.
Definition: eui48.h:31
Structure to hold driver state.
Definition: netdev.h:365
A 16 bit integer in big endian aka network byte order.
Definition: byteorder.h:70
Data type to represent an EUI-64.
Definition: eui64.h:52