Line data Source code
1 : #ifndef HEADER_fd_src_disco_netlink_fd_netlink_tile_h 2 : #define HEADER_fd_src_disco_netlink_fd_netlink_tile_h 3 : 4 : /* fd_netlink_tile.h provides APIs for working with the netlink tile. */ 5 : 6 : #include "../topo/fd_topo.h" 7 : 8 : /* Hardcoded limits */ 9 0 : #define NETDEV_MAX (256U) 10 0 : #define BOND_MASTER_MAX (256U) 11 : 12 : /* fd_tile_netlnk provides the netlink tile. 13 : 14 : Consult /book/guide/netlink.md for more information. 15 : Web mirror: https://docs.firedancer.io/guide/netlink.html */ 16 : 17 : extern fd_topo_run_tile_t fd_tile_netlnk; 18 : 19 0 : #define FD_NETLINK_ROUTE4_SYNC_SIG (1UL<<63) 20 : 21 : struct fdctl_config; 22 : 23 : FD_PROTOTYPES_BEGIN 24 : 25 : void 26 : fd_netlink_topo_create( fd_topo_tile_t * netlink_tile, 27 : fd_topo_t * topo, 28 : ulong netlnk_max_routes, 29 : ulong netlnk_max_peer_routes, 30 : ulong netlnk_max_neighbors, 31 : char const * bind_interface ); 32 : 33 : void 34 : fd_netlink_topo_join( fd_topo_t * topo, 35 : fd_topo_tile_t * netlink_tile, 36 : fd_topo_tile_t * join_tile ); 37 : 38 : static inline ulong 39 : fd_netlink_neigh4_solicit_sig( uint ip4_addr, 40 0 : uint if_idx ) { 41 0 : return (ulong)ip4_addr | ( (ulong)if_idx<<32 ); 42 0 : } 43 : 44 : FD_PROTOTYPES_END 45 : 46 : #endif /* HEADER_fd_src_disco_netlink_fd_netlink_tile_h */