Ejemplo n.º 1
0
static void
handle_switch_disconnected( uint64_t datapath_id, void *switch_db ) {
  known_switch *sw = delete_hash_entry( switch_db, &datapath_id );
  if ( sw != NULL ) {
    delete_switch( sw );
  }
}
Ejemplo n.º 2
0
void
delete_port( list_element **switches, port_info *delete_port ) {
  assert( switches != NULL );
  assert( delete_port != NULL );

  info( "Deleting a port: dpid = %#" PRIx64 ", port = %u",
        delete_port->dpid, delete_port->port_no );

  // lookup switch
  switch_info *sw = lookup_switch( *switches, delete_port->dpid );
  if( sw == NULL ) {
    debug( "No such port: dpid = %#" PRIx64 ", port = %u", delete_port->dpid, delete_port->port_no );
    return;
  }

  delete_element( &sw->ports, delete_port );
  xfree( delete_port );

  if ( sw->ports == NULL ) {
    delete_switch( switches, sw );
  }
}