Exemplo n.º 1
0
static void sai_neighbor_entry_parse(
        const sai_neighbor_entry_t *neighbor_entry,
        switch_api_neighbor_t *api_neighbor) {

    SAI_ASSERT(sai_object_type_query(neighbor_entry->rif_id) == 
               SAI_OBJECT_TYPE_ROUTER_INTERFACE);

    api_neighbor->interface = (switch_handle_t) neighbor_entry->rif_id;
    api_neighbor->rw_type = SWITCH_API_NEIGHBOR_RW_TYPE_L3;
    sai_ip_addr_to_switch_ip_addr(&neighbor_entry->ip_address, &api_neighbor->ip_addr);
}
Exemplo n.º 2
0
static void sai_ipmc_entry_parse(_In_ const sai_ipmc_entry_t *ipmc_entry,
                                 _Out_ switch_handle_t *vrf_handle,
                                 _Out_ switch_ip_addr_t *src_addr,
                                 _Out_ switch_ip_addr_t *grp_addr) {
  SAI_ASSERT(sai_object_type_query(ipmc_entry->vr_id) ==
             SAI_OBJECT_TYPE_VIRTUAL_ROUTER);
  *vrf_handle = (switch_handle_t)ipmc_entry->vr_id;

  memset(src_addr, 0, sizeof(switch_ip_addr_t));
  sai_ip_addr_to_switch_ip_addr(&(ipmc_entry->source), src_addr);
  if (((src_addr->type == SWITCH_API_IP_ADDR_V4) &&
       (src_addr->ip.v4addr == 0)) ||
      ((src_addr->type == SWITCH_API_IP_ADDR_V6) &&
       (memcmp(src_addr->ip.v6addr, &in6addr_any, sizeof(in6addr_any)) == 0))) {
    src_addr->prefix_len = 0;
  }
  sai_ip_prefix_to_switch_ip_addr(&(ipmc_entry->group), grp_addr);
}