luid.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Freie Universität Berlin
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser
5  * General Public License v2.1. See the file LICENSE in the top level
6  * directory for more details.
7  */
8 
9 #pragma once
10 
55 #include <stddef.h>
56 
57 #include "net/eui48.h"
58 #include "net/eui64.h"
59 #include "net/netdev.h"
60 
61 #ifdef __cplusplus
62 extern "C" {
63 #endif
64 
69 #ifndef LUID_BACKUP_SEED
70 #define LUID_BACKUP_SEED 0x23
71 #endif
72 
88 void luid_get(void *buf, size_t len);
89 
103 void luid_get_lb(void *buf, size_t len);
104 
117 
129 
142 
154 
167 
182 void luid_custom(void *buf, size_t len, uint16_t gen);
183 
195 void luid_base(void *buf, size_t len);
196 
197 #ifdef __cplusplus
198 }
199 #endif
200 
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:34
Structure to hold driver state.
Definition: netdev.h:364
A 16 bit integer in big endian aka network byte order.
Definition: byteorder.h:73
Data type to represent an EUI-64.
Definition: eui64.h:55