Hi,
Found a problem in the pfil driver that was causing ipv6 messages to fail upon intoducing pfil layer.
Below is the snippet of code from pfil-2.1.7
Lfile pfildrv.c line no
In the below code snippet ipv6 header will have only payload length so inorder to get the packet length I have added sizeof(ip6_t) which will be 40 bytes. In absence of this correction the check that was put further in the code was causing problems and was passing wrong mbuf size to ip filter leading to failure of ipv6 messages.
675 #if SOLARIS2 >= 8
676 else if (sap == IP6_DL_SAP) {
677 u_short tlen;
678
679 hlen = sizeof(ip6_t);
680 ip6 = (ip6_t *)ip;
681
682 /* XXX - might not be aligned (from ppp?) */
683 ((char *)&tlen)[0] = ((char *)&ip6->ip6_plen)[0];
684 ((char *)&tlen)[1] = ((char *)&ip6->ip6_plen)[1];
685 plen = ntohs(tlen);
686
687 /* ipv6 packet lenght is payload length plus header length --- deepak */
688 plen += hlen;
689 if (plen == 0)
Hope this clarifies the problem
Regards
Deepak
