Date: Fri, 11 Sep 1998 13:12:46 +0200 (MET DST) From: Luigi Rizzo <luigi@labinfo.iet.unipi.it> To: net@FreeBSD.ORG Subject: PULLUP_TO in ip_fw.c Message-ID: <199809111112.NAA19733@labinfo.iet.unipi.it>
next in thread | raw e-mail | index | archive | help
Ok, i adapted the ipfw code to bridged and non-ip packets, but there is one minor issue: the macro PULLUP_TO is defined as #define PULLUP_TO(len) do { \ if ((*m)->m_len < (len) \ && (*m = m_pullup(*m, (len))) == 0) { \ goto bogusfrag; \ } \ *pip = ip = mtod(*m, struct ip *); \ offset = (ip->ip_off & IP_OFFMASK); \ } while (0) and as such it requires that the mbuf starts with the ip header and always writes into *pip and ip. In my case, I might pass the firewall an mbuf which includes an ethernet header, and i make sure that m_pullup needs not to be called. So i'd like to change the macro to #define PULLUP_TO(len) do { \ if ((*m)->m_len < (len) ) { \ if (*m = m_pullup(*m, (len)) == 0) \ goto bogusfrag; \ *pip = ip = mtod(*m, struct ip *); \ offset = (ip->ip_off & IP_OFFMASK); \ } } while (0) which btw saves a few writes to variables in case m_pullup is not called. If there are no objections i am going to do this in the weekend (assuming our router will be fixed by then :( luigi -----------------------------+-------------------------------------- Luigi Rizzo | Dip. di Ingegneria dell'Informazione email: luigi@iet.unipi.it | Universita' di Pisa tel: +39-50-568533 | via Diotisalvi 2, 56126 PISA (Italy) fax: +39-50-568522 | http://www.iet.unipi.it/~luigi/ _____________________________|______________________________________ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199809111112.NAA19733>