LCOV - code coverage report
Current view: top level - app/shared/commands - netconf.c (source / functions) Hit Total Coverage
Test: cov.lcov Lines: 0 42 0.0 %
Date: 2025-03-20 12:08:36 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #include "../fd_config.h"
       2             : 
       3             : #include "../../../waltz/ip/fd_fib4.h"
       4             : #include "../../../waltz/mib/fd_dbl_buf.h"
       5             : #include "../../../waltz/mib/fd_netdev_tbl.h"
       6             : #include "../../../waltz/neigh/fd_neigh4_map.h"
       7             : 
       8             : #include <net/if.h>
       9             : #include <stdio.h>
      10             : #include <stdlib.h> /* aligned_alloc */
      11             : 
      12             : void
      13             : netconf_cmd_fn( args_t *   args,
      14           0 :                 config_t * config ) {
      15           0 :   (void)args;
      16             : 
      17           0 :   fd_topo_t * topo = &config->topo;
      18           0 :   ulong wksp_id = fd_topo_find_wksp( topo, "netbase" );
      19           0 :   if( FD_UNLIKELY( wksp_id==ULONG_MAX ) ) {
      20           0 :     FD_LOG_ERR(( "netbase workspace not found" ));
      21           0 :   }
      22           0 :   fd_topo_wksp_t * netbase = &topo->workspaces[ wksp_id ];
      23             : 
      24           0 :   ulong tile_id = fd_topo_find_tile( topo, "netlnk", 0UL );
      25           0 :   if( FD_UNLIKELY( tile_id==ULONG_MAX ) ) {
      26           0 :     FD_LOG_ERR(( "netlnk tile not found" ));
      27           0 :   }
      28           0 :   fd_topo_tile_t * tile = &topo->tiles[ tile_id ];
      29             : 
      30           0 :   fd_topo_join_workspace( topo, netbase, FD_SHMEM_JOIN_MODE_READ_ONLY );
      31             : 
      32           0 :   puts( "\nINTERFACES\n" );
      33           0 :   fd_dbl_buf_t * netdev_buf = fd_dbl_buf_join( fd_topo_obj_laddr( topo, tile->netlink.netdev_dbl_buf_obj_id ) );
      34           0 :   FD_TEST( netdev_buf );
      35           0 :   void * netdev_copy = aligned_alloc( fd_netdev_tbl_align(), fd_dbl_buf_obj_mtu( netdev_buf ) );
      36           0 :   fd_dbl_buf_read( netdev_buf, netdev_copy, NULL );
      37           0 :   fd_netdev_tbl_join_t netdev[1];
      38           0 :   FD_TEST( fd_netdev_tbl_join( netdev, netdev_copy ) );
      39           0 :   fd_netdev_tbl_fprintf( netdev, stdout );
      40           0 :   fd_netdev_tbl_leave( netdev );
      41           0 :   free( netdev_copy );
      42           0 :   fd_dbl_buf_leave( netdev_buf );
      43             : 
      44           0 :   puts( "\nIPv4 ROUTES (main)\n" );
      45           0 :   fd_fib4_t * fib4_main = fd_fib4_join( fd_topo_obj_laddr( topo, tile->netlink.fib4_main_obj_id ) );
      46           0 :   FD_TEST( fib4_main );
      47           0 :   fd_fib4_fprintf( fib4_main, stdout );
      48           0 :   fd_fib4_leave( fib4_main );
      49             : 
      50           0 :   puts( "\nIPv4 ROUTES (local)\n" );
      51           0 :   fd_fib4_t * fib4_local = fd_fib4_join( fd_topo_obj_laddr( topo, tile->netlink.fib4_local_obj_id ) );
      52           0 :   FD_TEST( fib4_local );
      53           0 :   fd_fib4_fprintf( fib4_local, stdout );
      54           0 :   fd_fib4_leave( fib4_local );
      55             : 
      56           0 :   printf( "\nNEIGHBOR TABLE (%.16s)\n\n", tile->netlink.neigh_if );
      57           0 :   fd_neigh4_hmap_t neigh4[1];
      58           0 :   FD_TEST( fd_neigh4_hmap_join( neigh4, fd_topo_obj_laddr( topo, tile->netlink.neigh4_obj_id ), fd_topo_obj_laddr( topo, tile->netlink.neigh4_ele_obj_id ) ) );
      59           0 :   fd_neigh4_hmap_fprintf( neigh4, stdout );
      60           0 :   fd_neigh4_hmap_leave( neigh4 );
      61             : 
      62           0 :   puts( "" );
      63           0 : }

Generated by: LCOV version 1.14