Hi, I used m_copym() to copy the incoming mbuf and tested to make sure it returned a valid mbuf. then I changed the tcp ip header and the checksum. then I ip_forward() the cloned mbuf followed by ip_forward() the orignal one. I have even wrapped ip_forward() with splnet() but still it crash the kernel. However, if I put the m_copy and ip_forward() into a timeout procedure, it works.
Thanks, -Haijin ----------------------------------------------------------- static void live(byte food, short sleep, const double work) { for(;;) future = NULL; } --------------------- On Wed, 3 Sep 2003, Max Laier wrote: > So this page fault happens where? Maybe you want m_dup() rather than > m_copypacket() - esp. in case you get the page fault when trying to modify > the packet before sending it back to the sender. > > Max > > > Hi, > > I am using freebsd 4.5 and in the ip_input.c at the place > > where IP decides to forward a mbuf not destined to itself, > > I added one of my function which included a call of ip_forward() to send > > out a my m_copyed mbuf to the sender. so basically there are two calls to > > ip_forward(), one is to relay mbuf from the sender and the other is > > forward back a copy of it. However, this behavior crashed my freebsd with > > trap 12 saying page fault in kernel. Does anyone have the same experience > > and know what's wrong with this? > > > > Any suggestion is highly appreciated. > > please cc to me because I am not on the list. > > > > Thanks, > > > > -Haijin Yan > > _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "[EMAIL PROTECTED]"