PERFORCE change 100127 for review
Clément Lecigne
clem1 at FreeBSD.org
Tue Jun 27 09:03:59 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=100127
Change 100127 by clem1 at clem1_ipv6vulns on 2006/06/27 09:03:40
improvements around ipv6 fragmentation extension header.
Affected files ...
.. //depot/projects/soc2006/clem1_ipv6vulns/libnet/include/libnet/libnet-functions.h#5 edit
.. //depot/projects/soc2006/clem1_ipv6vulns/libnet/include/libnet/libnet-headers.h#4 edit
.. //depot/projects/soc2006/clem1_ipv6vulns/libnet/src/libnet_build_ip.c#2 edit
Differences ...
==== //depot/projects/soc2006/clem1_ipv6vulns/libnet/include/libnet/libnet-functions.h#5 (text+ko) ====
@@ -1095,7 +1095,8 @@
* Builds a version 6 RFC 2460 Internet Protocol (IP) fragmentation header.
* @param nh next header
* @param reserved unused value... OR IS IT!
- * @param frag fragmentation bits (ala ipv4)
+ * @param offset fragmentation bits (ala ipv4)
+ * @param m flag (more fragment or NOT)
* @param id packet identification
* @param payload optional payload or NULL
* @param payload_s payload length or 0
@@ -1104,8 +1105,8 @@
* @return protocol tag value on success, -1 on error
*/
libnet_ptag_t
-libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t frag,
-u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
+libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t offset,
+u_int8_t m, u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
libnet_ptag_t ptag);
/**
==== //depot/projects/soc2006/clem1_ipv6vulns/libnet/include/libnet/libnet-headers.h#4 (text+ko) ====
==== //depot/projects/soc2006/clem1_ipv6vulns/libnet/src/libnet_build_ip.c#2 (text+ko) ====
@@ -528,9 +528,9 @@
}
libnet_ptag_t
-libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t frag,
-u_int32_t id, u_int8_t *payload, u_int32_t payload_s, libnet_t *l,
-libnet_ptag_t ptag)
+libnet_build_ipv6_frag(u_int8_t nh, u_int8_t reserved, u_int16_t offset,
+u_int8_t m, u_int32_t id, u_int8_t *payload, u_int32_t payload_s,
+libnet_t *l, libnet_ptag_t ptag)
{
u_int32_t n;
u_int16_t h;
@@ -565,8 +565,8 @@
memset(&ipv6_frag_hdr, 0 , sizeof(ipv6_frag_hdr));
ipv6_frag_hdr.ip_nh = nh;
ipv6_frag_hdr.ip_reserved = reserved;
- ipv6_frag_hdr.ip_frag = frag;
- ipv6_frag_hdr.ip_id = id;
+ ipv6_frag_hdr.ip_frag = htons((offset << 3) + (m));
+ ipv6_frag_hdr.ip_id = htonl(id);
/*
* Appened the protocol unit to the list.
More information about the p4-projects
mailing list