Hi Ewan,

The value 0 represents the always present local0 interface. So this:
   mp->next_hop_sw_if_index = ntohl (0);
should be:
  mp->next_hop_sw_if_index = ntohl (~0);

in order to specify that no interface is desried.

I would also suggest;
sh ip fib <prefix>

To give you more information about the prefix you added, then the problem 
should become clear.

Regards,
Neale



From: <vpp-dev-boun...@lists.fd.io> on behalf of "yug...@telincn.com" 
<yug...@telincn.com>
Date: Tuesday, 3 January 2017 at 09:10
To: "Dave Barach (dbarach)" <dbar...@cisco.com>, vpp-dev <vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] strange phenomenon of interface

We did refer to the "api_ip_add_del_route" and test_client.c, but it seems that 
the route result still is not wright.

test_client.c,
add_del_ip4_route (test_main_t * tm, int enable_disable)
{
  vl_api_ip_add_del_route_t *mp;
  u32 tmp;

  mp = vl_msg_api_alloc (sizeof (*mp));
  memset (mp, 0, sizeof (*mp));
  mp->_vl_msg_id = ntohs (VL_API_IP_ADD_DEL_ROUTE);
  mp->client_index = tm->my_client_index;
  mp->context = 0xdeadbeef;
  mp->table_id = ntohl (0);
  mp->create_vrf_if_needed = 1;
  /* Arp, please, if needed */
  mp->resolve_if_needed = 1;
  mp->resolve_attempts = ntohl (10);

  mp->next_hop_sw_if_index = ntohl (0);

  mp->is_add = enable_disable;
  mp->next_hop_weight = 1;

  /* Next hop: 6.0.0.1 */
  tmp = ntohl (0x06000001);
  clib_memcpy (mp->next_hop_address, &tmp, sizeof (tmp));

  /* Destination: 10.0.0.1/32 */
  tmp = ntohl (0x0a000001);
  clib_memcpy (mp->dst_address, &tmp, sizeof (tmp));
  mp->dst_address_length = 24;

  vl_msg_api_send_shmem (tm->vl_input_queue, (u8 *) & mp);
}



6.0.0.0/24
  unicast-ip4-chain
  [@0]: dpo-load-balance: [index:13 buckets:1 uRPF:12 to:[0:0]]
    [0] [@4]: ipv4-glean: GigabitEthernet2/6/0
6.0.0.3/32
  unicast-ip4-chain
  [@0]: dpo-load-balance: [index:14 buckets:1 uRPF:13 to:[0:0]]
    [0] [@2]: dpo-receive: 6.0.0.3 on GigabitEthernet2/6/0
10.0.0.0/24
  unicast-ip4-chain
  [@0]: dpo-load-balance: [index:12 buckets:1 uRPF:11 to:[0:0]]
    [0] [@0]: dpo-drop ip4


________________________________
yug...@telincn.com

From: Dave Barach (dbarach)<mailto:dbar...@cisco.com>
Date: 2016-12-31 21:04
To: yug...@telincn.com<mailto:yug...@telincn.com>; 
vpp-dev<mailto:vpp-dev@lists.fd.io>
Subject: RE: [vpp-dev] strange phenomenon of interface
Take a look at vpp_api_test, specifically 
.../vat/api_format.c:api_ip_add_del_route()...

Thanks… Dave

From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On 
Behalf Of yug...@telincn.com
Sent: Saturday, December 31, 2016 7:23 AM
To: vpp-dev <vpp-dev@lists.fd.io>
Subject: Re: [vpp-dev] strange phenomenon of interface

Hi all,
Thanks for your time.
I would like to use func "ip4_add_del_route_t_handler" to add route, how to 
fill next msg struct,  i just want the same effect with the  cmd "vppctl ip 
route add 10.10.10.0/24 via 80.80.80.1".
It's there any substitude func?

typedef VL_API_PACKED(struct _vl_api_ip_add_del_route {
    u16 _vl_msg_id;
    u32 client_index;
    u32 context;
    u32 next_hop_sw_if_index;
    u32 table_id;
    u32 resolve_attempts;
    u32 classify_table_index;
    u32 next_hop_out_label;
    u32 next_hop_table_id;
    u8 create_vrf_if_needed;
    u8 resolve_if_needed;
    u8 is_add;
    u8 is_drop;
    u8 is_unreach;
    u8 is_prohibit;
    u8 is_ipv6;
    u8 is_local;
    u8 is_classify;
    u8 is_multipath;
    u8 is_resolve_host;
    u8 is_resolve_attached;
    u8 not_last;
    u8 next_hop_weight;
    u8 dst_address_length;
    u8 dst_address[16];
    u8 next_hop_address[16];
}) vl_api_ip_add_del_route_t;



Regards,
By Ewan.

________________________________
yug...@telincn.com<mailto:yug...@telincn.com>
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to