Exemple #1
0
static void
finalize_exact_match_table( hash_table *exact_table ) {
  assert( exact_table != NULL );

  foreach_hash( exact_table, free_exact_match_entry, NULL );
  delete_hash( exact_table );
}
static void
age_host_db( void *user_data ) {
  UNUSED( user_data );

  debug( "Host DB: start aging." );

  foreach_hash( host_db, age_host_db_entry, NULL );
}
static void
update_all_entries( void *datapath_id, void *sw, void *user_data ) {
  UNUSED( datapath_id );
  UNUSED( user_data );

  hash_table *forwarding_db = ( ( known_switch * ) sw )->forwarding_db;
  foreach_hash( forwarding_db, age_forwarding_db, forwarding_db );
}
Exemple #4
0
void
finalize_dpid_table( void ) {
  assert( dpid_table != NULL );

  foreach_hash( dpid_table, free_dpid_table_walker, NULL );
  delete_hash( dpid_table );
  dpid_table = NULL;
}
Exemple #5
0
static void
map_exact_match_table( hash_table *exact_table, struct ofp_match *match, void function( struct ofp_match, uint16_t, void *, void * ), void *user_data ) {
  assert( exact_table != NULL );
  assert( function != NULL );
  match_walker walker;
  walker.match = match;
  walker.function = function;
  walker.user_data = user_data;
  foreach_hash( exact_table, exact_match_table_walker, &walker );
}
static void
xfree_all_sw_tx( all_sw_tx *tx ) {
  struct event_forward_operation_to_all_request_param *param = tx->request_param;
  xfree_event_forward_operation_to_all_request_param( param );
  tx->request_param = NULL;

  foreach_hash( tx->waiting_dpid, xfree_dpid, NULL );
  delete_hash( tx->waiting_dpid );
  tx->waiting_dpid = NULL;
  xfree( tx );
}
Exemple #7
0
static void
test_foreach() {
  table = create_hash( compare_string, hash_string );
  insert_hash_entry( table, alpha, alpha );
  insert_hash_entry( table, bravo, bravo );
  insert_hash_entry( table, charlie, charlie );
  delete_hash_entry( table, bravo );
  delete_hash_entry( table, charlie );

  foreach_hash( table, append_back_foreach, NULL );

  assert_string_equal( abc[ 0 ], "alpha" );
  assert_true( abc[ 1 ] == NULL );
  assert_true( abc[ 2 ] == NULL );

  delete_hash( table );
}
Exemple #8
0
void
finalize_match_table( void ) {
  list_element *list;

  pthread_mutex_lock( match_table_head.mutex );

  foreach_hash( match_table_head.exact_table, free_match_table_walker, NULL );
  delete_hash( match_table_head.exact_table );
  match_table_head.exact_table = NULL;

  for ( list = match_table_head.wildcard_table; list != NULL; list = list->next ) {
    free_match_entry( list->data );
  }
  delete_list( match_table_head.wildcard_table );
  match_table_head.wildcard_table = NULL;

  pthread_mutex_unlock( match_table_head.mutex );
  pthread_mutex_destroy( match_table_head.mutex );
  xfree( match_table_head.mutex );
  match_table_head.mutex = NULL;
}
static void
refresh( known_switch *sw ) {
  foreach_hash( sw->forwarding_db, delete_forwarding_entry, NULL );
  delete_hash( sw->forwarding_db );
  sw->forwarding_db = create_hash( compare_mac, hash_mac );
}
static void
delete_switch( known_switch *sw ) {
  foreach_hash( sw->forwarding_db, delete_forwarding_entry, NULL );
  delete_hash( sw->forwarding_db );
  xfree( sw );
}
static void
update_all_switches( void *switch_db ) {
  foreach_hash( switch_db, update_all_entries, NULL );
}
Exemple #12
0
static void
age_fdb( void *user_data ) {
    hash_table *fdb = user_data;
    foreach_hash( fdb, age_fdb_entry, fdb );
}
Exemple #13
0
void
delete_counter( hash_table *db ) {
  foreach_hash( db, free_each_value, NULL );
  delete_hash( db );
}
Exemple #14
0
void
foreach_counter( hash_table *db, void function( uint8_t *, counter *, void * ), void *user_data ) {
  foreach_hash( db, ( void ( * )( void *, void *, void * ) ) function, user_data );
}
Exemple #15
0
static void
update_forwarding_db( void *forwarding_db ) {
  foreach_hash( forwarding_db, age_forwarding_db, forwarding_db );
}