Documentation

Documentation

Includes

netif/bridgeif_opts.h

#include "netif/bridgeif_opts.h"
#include "netif/bridgeif_opts.h"

lwip/err.h

#include "lwip/err.h"
#include "lwip/err.h"

lwip/prot/ethernet.h

#include "lwip/prot/ethernet.h"
#include "lwip/prot/ethernet.h"

lwip/sys.h

#include "lwip/sys.h"
#include "lwip/sys.h"

lwip/tcpip.h

#include "lwip/tcpip.h"
#include "lwip/tcpip.h"

Macros

Marco LWIP_HDR_NETIF_BRIDGEIF_H

#define LWIP_HDR_NETIF_BRIDGEIF_H


      

Marco BR_FLOOD

#define BR_FLOOD ((bridgeif_portmask_t)-1)


      

Marco BRIDGEIF_INITDATA1(max_ports, max_fdb_dynamic_entries, max_fdb_static_entries, ethaddr)

#define BRIDGEIF_INITDATA1(max_ports, max_fdb_dynamic_entries, max_fdb_static_entries, ethaddr) {ethaddr, max_ports, max_fdb_dynamic_entries, max_fdb_static_entries}
/** @ingroup bridgeif
 * Use this for constant initialization of a bridgeif_initdat_t
 * (ethaddr must be passed as ETH_ADDR())
 */

Marco BRIDGEIF_INITDATA2(max_ports, max_fdb_dynamic_entries, max_fdb_static_entries, e0, e1, e2, e3, e4, e5)

#define BRIDGEIF_INITDATA2(max_ports, max_fdb_dynamic_entries, max_fdb_static_entries, e0, e1, e2, e3, e4, e5) {{e0, e1, e2, e3, e4, e5}, max_ports, max_fdb_dynamic_entries, max_fdb_static_entries}
/** @ingroup bridgeif
 * Use this for constant initialization of a bridgeif_initdat_t
 * (each byte of ethaddr must be passed)
 */

Marco BRIDGEIF_DECL_PROTECT(lev)

#define BRIDGEIF_DECL_PROTECT(lev)   SYS_ARCH_DECL_PROTECT(lev)


      

Marco BRIDGEIF_READ_PROTECT(lev)

#define BRIDGEIF_READ_PROTECT(lev)   SYS_ARCH_PROTECT(lev)


      

Marco BRIDGEIF_READ_UNPROTECT(lev)

#define BRIDGEIF_READ_UNPROTECT(lev) SYS_ARCH_UNPROTECT(lev)


      

Marco BRIDGEIF_WRITE_PROTECT

#define BRIDGEIF_WRITE_PROTECT(lev)


      

Marco BRIDGEIF_WRITE_UNPROTECT

#define BRIDGEIF_WRITE_UNPROTECT(lev)


      

Marco BRIDGEIF_DECL_PROTECT

#define BRIDGEIF_DECL_PROTECT(lev)


      

Marco BRIDGEIF_READ_PROTECT

#define BRIDGEIF_READ_PROTECT(lev)


      

Marco BRIDGEIF_READ_UNPROTECT

#define BRIDGEIF_READ_UNPROTECT(lev)


      

Marco BRIDGEIF_WRITE_PROTECT

#define BRIDGEIF_WRITE_PROTECT(lev)


      

Marco BRIDGEIF_WRITE_UNPROTECT

#define BRIDGEIF_WRITE_UNPROTECT(lev)

      

Functions

Func bridgeif_init

err_t bridgeif_init(struct netif *netif);


      

Func bridgeif_add_port

err_t bridgeif_add_port(struct netif *bridgeif, struct netif *portif);


      

Func bridgeif_fdb_add

err_t bridgeif_fdb_add(struct netif *bridgeif, const struct eth_addr *addr, bridgeif_portmask_t ports);


      

Func bridgeif_fdb_remove

err_t bridgeif_fdb_remove(struct netif *bridgeif, const struct eth_addr *addr);


      

Func bridgeif_fdb_update_src

void               bridgeif_fdb_update_src(void *fdb_ptr, struct eth_addr *src_addr, u8_t port_idx);
/* FDB interface, can be replaced by own implementation */

Func bridgeif_fdb_get_dst_ports

bridgeif_portmask_t bridgeif_fdb_get_dst_ports(void *fdb_ptr, struct eth_addr *dst_addr);


      

Func bridgeif_fdb_init

void*              bridgeif_fdb_init(u16_t max_fdb_entries);

      

Vars

Variable netif

struct netif;

      

Consts

Types

Typedefs

Typedef bridgeif_portmask_t

typedef u8_t bridgeif_portmask_t;
#elif BRIDGEIF_MAX_PORTS < 16
typedef u16_t bridgeif_portmask_t;
#elif BRIDGEIF_MAX_PORTS < 32
typedef u32_t bridgeif_portmask_t;
#elif BRIDGEIF_MAX_PORTS < 64
typedef u64_t bridgeif_portmask_t;


      

Typedef bridgeif_initdata_t;

typedef struct bridgeif_initdata_s {
 /** MAC address of the bridge (cannot use the netif's addresses) */
 struct eth_addr ethaddr;
 /** Maximum number of ports in the bridge (ports are stored in an array, this
      influences memory allocated for netif->state of the bridge netif). */
 u8_t           max_ports;
 /** Maximum number of dynamic/learning entries in the bridge's forwarding database.
      In the default implementation, this controls memory consumption only. */
 u16_t          max_fdb_dynamic_entries;
 /** Maximum number of static forwarding entries. Influences memory consumption! */
 u16_t          max_fdb_static_entries;
} bridgeif_initdata_t;
/** @ingroup bridgeif
 * Initialisation data for @ref bridgeif_init.
 * An instance of this type must be passed as parameter 'state' to @ref netif_add
 * when the bridge is added.
 */