Checksum verification of hello & dbdesc packets with ospfv3 in quagga

In the current Quagga Code for OSPFv3, checksum verification is not taken into account for OSPFv3 hello and database description packets.Still while sending the packets, checksum is having a 0 value but at receiver it is coming out to be a non zero value. Going through the code, it is written that...
Code:
**************In ospf6_send() function******************

 /* fill OSPF header */
  oh->version = OSPFV3_VERSION;
  /* message type must be set before */
  /* message length must be set before */
  oh->router_id = oi->area->ospf6->router_id;
  oh->area_id = oi->area->area_id;
  [B]/* checksum is calculated by kernel */[/B]
  oh->instance_id = oi->instance_id;
  oh->reserved = 0;


*******************************************************

But the code where it is calculated by the kernel cannot be found. Please suggest where the exact calculation for checksum is done.

Also in LSA packets, there is functions in code to calculate checksum value using ospf6_lsa_checksum() in the file ospf6_intra.c, also another ospf6_receive_lsa() function in the file ospf6_flood.c verifies it's value in receiving packet.

So please guide me how to calculate checksum value in sending as well as receiving end for hello & dbdesc packets?
Can we use those functions in hello & dbdesc packets?

Any solution is welcome.
 
Back
Top