Hi Developer,

I have build my own daemon in quagga. It runs and i can telnet into it, but now 
i want to add static routes with this daemon to the routing table. I am using 
the zapi_ipv4_route funkion (funtion i implemeted is added at the end) to add a 
route to the routing table, but after i call this funktion i can not see any 
changes in the routing table and i don´t get any error message. So now i am 
trying to find out what i am doing wrong. Can you please look into the funktion 
and look if there are any errors i made by initializing the variables?
I tried the same funktion in the ripd daemon but it still didn´t add any routes 
to the routing table.
Code:
int i2rs_route_add ()
{

  struct zapi_ipv4 api;
  struct prefix_ipv4 routeToAdd;
  struct in_addr nexthop[1];
  struct in_addr *nexthop_p;
  unsigned int ifindex;

  routeToAdd.family = AF_INET; //only ip4 address
  routeToAdd.prefixlen = 24; // ip4 mask \24
  inet_pton(AF_INET, "100.100.100.1", &routeToAdd.prefix.s_addr);
  //ip4 address saved in routeToAdd.prefix.s_addr with type s_addr
//currently static
  api.vrf_id = VRF_DEFAULT;
  api.type = ZEBRA_ROUTE_STATIC;//static route in route table
  api.flags =0; //initialized with 0
  api.message = ZAPI_MESSAGE_NEXTHOP | ZAPI_MESSAGE_METRIC;//message flags
  api.nexthop_num = 1;//number of nexthop
  api.ifindex_num = 0;//interface number initialized
  inet_pton(AF_INET, "200.200.200.1", &nexthop[0].s_addr);
//ip4 address saved as s_addr
  nexthop_p = nexthop; //nexthop pointer
  api.nexthop = &nexthop_p;
  ifindex = 1;//eth0 number
  api.ifindex = &ifindex;
  api.distance = 0;//default distance
  api.metric = 10;//

  zapi_ipv4_route (ZEBRA_IPV4_ROUTE_ADD, zclient, &routeToAdd, &api);


printf("add route\n");
return 0;

}
Best Regards

Kerem Saka

_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to