Пример #1
0
static inline void
s_delete_stage(lagopus_pipeline_stage_t ps) {
  if (ps != NULL) {
    (void)lagopus_hashmap_delete(&s_ps_obj_tbl, (void *)ps, NULL, true);
    if (IS_VALID_STRING(ps->m_name) == true) {
      (void)lagopus_hashmap_delete(&s_ps_name_tbl,
                                   (void *)(ps->m_name), NULL, true);
    }
  }
}
Пример #2
0
static inline lagopus_result_t
queue_conf_delete(queue_conf_t *conf) {
  if (queue_table != NULL) {
    if (conf != NULL && IS_VALID_STRING(conf->name) == true) {
      return lagopus_hashmap_delete(&queue_table, (void *) conf->name,
                                    NULL, true);
    } else {
      return LAGOPUS_RESULT_INVALID_ARGS;
    }
  } else {
    return LAGOPUS_RESULT_NOT_STARTED;
  }
}
Пример #3
0
static lagopus_result_t
channel_delete_internal(const char *key) {
  lagopus_result_t ret;
  struct channel *chan;

  ret = lagopus_hashmap_find(&main_table, (void *)key, (void **)&chan);
  if (ret != LAGOPUS_RESULT_OK) {
    return ret;
  }

  channel_disable(chan);

  ret = channel_free(chan);
  if (ret != LAGOPUS_RESULT_OK) {
    return ret;
  }

  return lagopus_hashmap_delete(&main_table, (void *)key, NULL, false);
}
Пример #4
0
static inline lagopus_result_t
bridge_unregister(uint64_t dpid, bool force) {
  lagopus_result_t ret = LAGOPUS_RESULT_ANY_FAILURES;
  struct ofp_bridgeq *brq = NULL;

  bridgeq_mgr_lock();
  /* delete from bridgeq_table */
  ret = lagopus_hashmap_delete(&bridgeq_table,
                               (void *)dpid, (void **)&brq, false);
  if (ret == LAGOPUS_RESULT_OK && brq != NULL) {
    /* delete bridgeq. */
    lagopus_msg_debug(1, "unregister bridgeq(%p). dpid: %lu\n",
                      brq, dpid);
    ofp_bridgeq_free(brq, force);
    ret = LAGOPUS_RESULT_OK;
  } else {
    lagopus_perror(ret);
  }
  bridgeq_mgr_unlock();

  return ret;
}
Пример #5
0
static inline void
s_delete_addr(void *addr) {
  if (likely(addr != NULL)) {
    (void)lagopus_hashmap_delete(&s_tbl, addr, NULL, true);
  }
}
Пример #6
0
static inline void
s_config_delete(testobj_config_t *o) {
  if (o != NULL && IS_VALID_STRING(o->m_name) == true) {
    (void)lagopus_hashmap_delete(&s_tbl, (void *)(o->m_name), NULL, true);
  }
}