Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Aug 2009 21:49:25 GMT
From:      Ana Kukec <anchie@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 167343 for review
Message-ID:  <200908142149.n7ELnPoo046473@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=167343

Change 167343 by anchie@anchie_desnimis on 2009/08/14 21:48:42

	Changes in user land in order to process SEND message appended to
	rt_msghdr instead of rt_ifannouncemsghdr.	

Affected files ...

.. //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#22 edit

Differences ...

==== //depot/projects/soc2009/anchie_send/send_0.2/sendd/net.c#22 (text+ko) ====

@@ -69,6 +69,7 @@
 {
 	struct sbuff *b;
 
+	/* 2048 + rt_msghdr */
 	if ((b = sbuff_alloc(SND_MAX_PKT + sizeof(struct rt_msghdr))) == NULL) {
 		APPLOG_NOMEM();
 		return (NULL);
@@ -139,27 +140,15 @@
 	pi = (struct snd_packet_info *)(b->head);
 	DBG(&dbg_snd, "Direction, in = %d", pi->in);
 
-#if 0
-	ip6 = sbuff_data(b);	
-	DBG(&dbg_snd, "SRC: %s", inet_ntop(AF_INET6, &ip6->ip6_src, abuf, sizeof (abuf)));
-	DBG(&dbg_snd, "DST: %s", inet_ntop(AF_INET6, &ip6->ip6_dst, abuf, sizeof (abuf)));
-	struct nd_neighbor_solicit *ns;
-	struct in6_addr *tgt;
-	b->data += sizeof (struct ip6_hdr);
-	ns = (struct nd_neighbor_solicit *)(b->data);
-	tgt = &ns->nd_ns_target;
-	DBG(&dbg_snd, "DST: %s", inet_ntop(AF_INET6, tgt, abuf, sizeof (abuf)));
-#endif
-
 	DBG(&dbg_snd, "rt_msghdr = %d, if_announcemsghdr = %d\n", sizeof (struct rt_msghdr), sizeof (struct if_announcemsghdr));
 
 	/* buffer starts with IPv6 hdr, roll back to include rtm header */	
-#if 0
 	b->data -= sizeof (struct rt_msghdr);
 	b->len += sizeof (struct rt_msghdr);
-#endif
+#if 0
 	b->data -= sizeof (struct if_announcemsghdr);
 	b->len += sizeof (struct if_announcemsghdr);
+#endif
 
 	DBG(&dbg_snd, "%d bytes on %s", b->len, pi->ifinfo->name);
 
@@ -295,10 +284,10 @@
 		case RTM_SND_IN:
 			applog(LOG_ERR, "RTM_SND_IN");
 			/* n = RTM hdr + SEND message */
+			if (sbuff_pull(b, sizeof (struct rt_msghdr)) == NULL) {
 #if 0
-			if (sbuff_pull(b, sizeof (struct rt_msghdr)) == NULL) {
+			if (sbuff_pull(b, sizeof (struct if_announcemsghdr)) == NULL) {
 #endif
-			if (sbuff_pull(b, sizeof (struct if_announcemsghdr)) == NULL) {
 				DBG(&dbg_snd, "invalid pkt (not enough for rtm hedaer");				goto done;
 			}
 
@@ -310,10 +299,10 @@
 		case RTM_SND_OUT:
 			applog(LOG_ERR, "RTM_SND_OUT");
 			/* n = RTM hdr + ip6_hdr + icmp6len */
+			if (sbuff_pull(b, sizeof (struct rt_msghdr)) == NULL) {
 #if 0
-			if (sbuff_pull(b, sizeof (struct rt_msghdr)) == NULL) {
+			if (sbuff_pull(b, sizeof (struct if_announcemsghdr)) == NULL) {
 #endif
-			if (sbuff_pull(b, sizeof (struct if_announcemsghdr)) == NULL) {
 				DBG(&dbg_snd, "invalid pkt (not enough for rtm header");
 				goto done;
 			}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908142149.n7ELnPoo046473>