<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Networking</title>
	<atom:link href="http://blogs.freebsdish.org/gnn/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.freebsdish.org/gnn</link>
	<description>Just another FreeBSD Committers Blogs weblog</description>
	<pubDate>Wed, 23 Apr 2008 12:56:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
	<language>en</language>
			<item>
		<title>Testing multicast</title>
		<link>http://blogs.freebsdish.org/gnn/2008/04/23/testing-multicast/</link>
		<comments>http://blogs.freebsdish.org/gnn/2008/04/23/testing-multicast/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 11:57:55 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2008/04/23/testing-multicast/</guid>
		<description><![CDATA[	TCP is the protocol that gets the most attention, and that makes some sense as it&#8217;s the one that carries your email and web pages, the two most popular applications on the net.&#160;&#160; There are times, though, when TCP is not appropriate, like when you want to multicast data to several machines at once.

	Multicasting takes [...]]]></description>
			<content:encoded><![CDATA[	<p><span class="caps">TCP</span> is the protocol that gets the most attention, and that makes some sense as it&#8217;s the one that carries your email and web pages, the two most popular applications on the net.&nbsp;&nbsp; There are times, though, when <span class="caps">TCP</span> is not appropriate, like when you want to multicast data to several machines at once.</p>

	<p><code>Multicasting</code> takes advantage of the fact that LANs, such as Ethernet, are broadcast media, in which all hosts can, if they choose, see all the packets as they go by.</p>

	<p>In order to use multicast you have to use a datagram protocol, such as <code>UDP</code>, for reasons that I will not get into in this posting.</p>

	<p>One of the more important qualities to test for when building a multicast network is latency.  Many people know about testing for bandwidth, i.e. how many bytes/bits per second can we shove down this pipe, but latency tests are rarer.  Since such tests are rare I have written one which is now included in FreeBSD.  It can be found in the <code>src/tools/tools/mctest</code> directory of <span class="caps">CURRENT </span>(8.0).  An example is shown below:</p>

	<p><code><br />
Source<br />
mctest -i em0 -s 1024 -n 100 -t 1<br />
Sink<br />
mctest -i em0 -s 1024 -n 100 -r<br />
</code><br />
Send 100 packets of 1024 bytes, with an inter-packet gap of 1 nanosecond.</p>

	<p>The <code>mctest</code> program includes both the source and the sink code, and the <code>-r</code> command line argument is what tells the program to be a sink (i.e. to receive packets).</p>

	<p>The way that <code>mctest</code> tests for latency is that the source sends out a multicast packet and then the sink(s) send the packet right back.  The sinks report statistics like the size of the gap between packets, which shows network jitter, and if any packets were lost.  The source reports if packets were lost as well as the round trip latency of the packets.</p>

	<p>Results from the test look like this on the source:</p>

	<p>Results from client #0<br />
sec: 0 usecs: 73<br />
sec: 0 usecs: 44<br />
sec: 0 usecs: 48<br />
sec: 0 usecs: 39</p>

	<p>which shows partial results.  The results for all clients are actually output.  There is also a convenient shell script <code>mctest_run.sh</code> which can be used to start sinks on multiple hosts.  All of this is documented in the manual page as well.</p>

	<p>Happy Testing!</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2008/04/23/testing-multicast/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Interview on BSDTalk about the new IPsec</title>
		<link>http://blogs.freebsdish.org/gnn/2007/07/18/interview-on-bsdtalk-about-the-new-ipsec/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/07/18/interview-on-bsdtalk-about-the-new-ipsec/#comments</comments>
		<pubDate>Wed, 18 Jul 2007 21:14:34 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/07/18/interview-on-bsdtalk-about-the-new-ipsec/</guid>
		<description><![CDATA[	I was interviewed recently by Will Backman, the host of BSD Talk, about the latest changes in IPsec in FreeBSD.  The podcast can be heard here:

	http://bsdtalk.blogspot.com/

	http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk121.ogg
 ]]></description>
			<content:encoded><![CDATA[	<p>I was interviewed recently by Will Backman, the host of <span class="caps">BSD </span>Talk, about the latest changes in IPsec in FreeBSD.  The podcast can be heard here:</p>

	<p>http://bsdtalk.blogspot.com/</p>

	<p>http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk121.ogg</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/07/18/interview-on-bsdtalk-about-the-new-ipsec/feed/</wfw:commentRss>
		</item>
		<item>
		<title>FAST_IPSEC is now IPSEC in FreeBSD</title>
		<link>http://blogs.freebsdish.org/gnn/2007/07/14/fast_ipsec-is-now-ipsec-in-freebsd/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/07/14/fast_ipsec-is-now-ipsec-in-freebsd/#comments</comments>
		<pubDate>Sat, 14 Jul 2007 20:33:56 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/07/14/fast_ipsec-is-now-ipsec-in-freebsd/</guid>
		<description><![CDATA[	As of about 2 weeks ago the IPsec implementations in FreeBSD were changed such that the old, Kame, IPsec is no longer in the system, and the system that was once called FAST_IPSEC is now the official IPsec of FreeBSD.

	What does this mean to you?

	&#194;&#160;FreeBSD IPsec is now MP Safe, which is a requirement for [...]]]></description>
			<content:encoded><![CDATA[	<p>As of about 2 weeks ago the IPsec implementations in FreeBSD were changed such that the old, Kame, IPsec is no longer in the system, and the system that was once called <span class="caps">FAST</span>_IPSEC is now the official IPsec of FreeBSD.</p>

	<p>What does this mean to you?<br />
<ul></p>
	<p><li>&Acirc;&nbsp;FreeBSD IPsec is now <span class="caps">MP </span>Safe, which is a requirement for the 7.0 release.</li><br />
</ul></p>
	<p><ul></p>
	<p><li>FreeBSD IPsec supports offloading cryptographic operations to specialized hardware by default.</li><br />
</ul></p>
	<p><ul></p>
	<p><li>&Acirc;&nbsp;It&#8217;s time to jump in and help test these changes!</li><br />
</ul></p>
	<p>So, now it&#8217;s time for everyone to get the latest cut of <span class="caps">HEAD</span> and try this code out in a wider distribution.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/07/14/fast_ipsec-is-now-ipsec-in-freebsd/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Keeping time in a Virtual Machine</title>
		<link>http://blogs.freebsdish.org/gnn/2007/04/29/keeping-time-in-a-virtual-machine/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/04/29/keeping-time-in-a-virtual-machine/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 01:58:14 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/04/29/keeping-time-in-a-virtual-machine/</guid>
		<description><![CDATA[	&#194;&#160;Unlike suspend/resume on a laptop the guest operating system in a Virtual Machine doesn&#8217;t know when it has gone to sleep and woken up.  The best way to get it to keep time correctly is to use ntpd (see ntpd(8) and ntp.conf(5)).

	In order to keep ntpd running you have to tell it not to [...]]]></description>
			<content:encoded><![CDATA[	<p>&Acirc;&nbsp;Unlike suspend/resume on a laptop the guest operating system in a Virtual Machine doesn&#8217;t know when it has gone to sleep and woken up.  The best way to get it to keep time correctly is to use ntpd (see ntpd(8) and ntp.conf(5)).</p>

	<p>In order to keep ntpd running you have to tell it not to panic when it gets a very large time offset.  The ntp daemon will accept an offset of up to 1000 seconds by default, but if you suspend your machine for more than that length  of time the daemon will exit.  In your /etc/ntp.conf file add the following lines:</p>

	<p>tinker panic 0</p>

	<p>The 0 says &#8220;accept any offset&#8221; which means that if your machine is suspended for a long time, as mine often are, when it unsuspends and gets a very large offset from the server everything will be OK.</p>

	<p>You can also decide to specify the -g flag to the ntpd daemon in the flags section in rc.conf but it&#8217;s likely better to use the configuration file since you&#8217;ll need one anyway, and then upgrading and making a mistake with mergemaster won&#8217;t kill your settings.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/04/29/keeping-time-in-a-virtual-machine/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BSDTalk Podcast on Virtual Machines&#8230;</title>
		<link>http://blogs.freebsdish.org/gnn/2007/04/29/bsdtalk-podcast-on-virtual-machines/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/04/29/bsdtalk-podcast-on-virtual-machines/#comments</comments>
		<pubDate>Sun, 29 Apr 2007 01:53:48 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/04/29/bsdtalk-podcast-on-virtual-machines/</guid>
		<description><![CDATA[	Will Backman of BSDTalk interviewed me about my work with kernel development and virtual machines.  You can find the podcast here:

	http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk109.mp3

	and you can find all the podcasts on BSDTalk here:

	http://bsdtalk.blogspot.com/

	I&#8217;ll be adding more posts about working with virtual machines in the near future.
 ]]></description>
			<content:encoded><![CDATA[	<p>Will Backman of <span class="caps">BSD</span>Talk interviewed me about my work with kernel development and virtual machines.  You can find the podcast here:</p>

	<p>http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk109.mp3</p>

	<p>and you can find all the podcasts on <span class="caps">BSD</span>Talk here:</p>

	<p>http://bsdtalk.blogspot.com/</p>

	<p>I&#8217;ll be adding more posts about working with virtual machines in the near future.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/04/29/bsdtalk-podcast-on-virtual-machines/feed/</wfw:commentRss>
<enclosure url="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk109.mp3" length="5640515" type="audio/mpeg" />
		</item>
		<item>
		<title>Remote GDB on VMWare</title>
		<link>http://blogs.freebsdish.org/gnn/2007/03/11/remote-gdb-on-vmware/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/03/11/remote-gdb-on-vmware/#comments</comments>
		<pubDate>Sun, 11 Mar 2007 05:58:48 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/03/11/remote-gdb-on-vmware/</guid>
		<description><![CDATA[	One of the reasons to use virtual machines is that they make kernel debugging easier.  No messing about with serial cables anymore, the simulator provides you with virtual serial ports, which to the operating system look just like real serial ports.  In this entry I&#8217;ll explain how to use remote GDB with VMWare [...]]]></description>
			<content:encoded><![CDATA[	<p>One of the reasons to use virtual machines is that they make kernel debugging easier.  No messing about with serial cables anymore, the simulator provides you with virtual serial ports, which to the operating system look just like real serial ports.  In this entry I&#8217;ll explain how to use remote <span class="caps">GDB</span> with VMWare virtual machines.   My current setup is VMWare 5.x on Linux with FreeBSD-CURRENT (7.x) as the guest.</p>

	<p>In order to set up remote <span class="caps">GDB</span> you&#8217;ll need two virtual machines, one of which you&#8217;ll be debugging from, which I call <strong>devbox</strong>, and the other is the one you&#8217;re debugging which is often called a target, and which I call <strong>dut</strong>, short for Device Under Test.</p>

	<p><em>Preparing a Kernel</em></p>

	<p>For the <span class="caps">DUT</span> you will need to prepare a kernel that has support for remote <span class="caps">GDB</span>.  Add the following lines to your kernel configuration file and compile the kernel on devbox:</p>

	<p><code><br />
options         KDB                     # Enable kernel debugger support.<br />
options         DDB                     # Support DDB.<br />
options         GDB                     # Support remote GDB.<br />
</code></p>

	<p>Install the newly compiled kernel into your <span class="caps">DUT</span> virtual machine.  <strong><span class="caps">DO NOT INSTALL IT ON DEVBOX</span></strong> or you will be sorry.</p>

	<p>On the <span class="caps">DUT</span> you will need to add the following lines to loader.conf:<br />
<code><br />
hint.sio.1.flags=0x90<br />
boot_gdb=1<br />
</code></p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/03/11/remote-gdb-on-vmware/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PCS and Packet Debugger on BSDTalk</title>
		<link>http://blogs.freebsdish.org/gnn/2007/02/28/pcs-and-packet-debugger-on-bsdtalk/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/02/28/pcs-and-packet-debugger-on-bsdtalk/#comments</comments>
		<pubDate>Wed, 28 Feb 2007 17:50:32 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/02/28/pcs-and-packet-debugger-on-bsdtalk/</guid>
		<description><![CDATA[	I was interviewed recently by Will Backman of BSDTalk about PCS and Packet Debugger.  The full interview is here:

	&#60;a href=http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk101.mp3&#62;Interview&#60;/a&#62;

	and the BSD Talk page itself is here:

	&#60;a href=http://bsdtalk.blogspot.com/&#62;BSDTalk Page&#60;/a&#62;
 ]]></description>
			<content:encoded><![CDATA[	<p>I was interviewed recently by Will Backman of <span class="caps">BSD</span>Talk about <span class="caps">PCS</span> and Packet Debugger.  The full interview is here:</p>

	<p>&lt;a href=http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk101.mp3&gt;Interview&lt;/a&gt;</p>

	<p>and the <span class="caps">BSD </span>Talk page itself is here:</p>

	<p>&lt;a href=http://bsdtalk.blogspot.com/&gt;BSDTalk Page&lt;/a&gt;</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/02/28/pcs-and-packet-debugger-on-bsdtalk/feed/</wfw:commentRss>
<enclosure url="http://cisx1.uma.maine.edu/~wbackman/bsdtalk/bsdtalk101.mp3" length="9000477" type="audio/mpeg" />
		</item>
		<item>
		<title>Announcing the Packet Debugger</title>
		<link>http://blogs.freebsdish.org/gnn/2007/02/08/announcing-the-packet-debugger/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/02/08/announcing-the-packet-debugger/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 21:38:00 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/02/08/announcing-the-packet-debugger/</guid>
		<description><![CDATA[	In order to facilitate the debugging of networking code I have used my library, &#60;a href=http://pcs.sf.net&#62;Packet Construction Set aka PCS&#60;/a&#62; to write a program I call the &#60;a href=http://pktdbg.sf.net&#62;Packet Debugger (pdb)&#60;/a&#62;.  All of this is written in Python and available under a BSD license.  The blurb from the pdb web page gives you [...]]]></description>
			<content:encoded><![CDATA[	<p>In order to facilitate the debugging of networking code I have used my library, &lt;a href=http://pcs.sf.net&gt;Packet Construction Set aka <span class="caps">PCS</span>&lt;/a&gt; to write a program I call the &lt;a href=http://pktdbg.sf.net&gt;Packet Debugger (pdb)&lt;/a&gt;.  All of this is written in Python and available under a <span class="caps">BSD</span> license.  The blurb from the pdb web page gives you the best idea of what I&#8217;m doing:</p>

	<p>&#8220;The <a href="http://sourceforge.net/projects/pktdbg">Packet Debugger</a> (pdb) is a program which allows people to work with packet streams as if they were working with a source code debugger. Users can list, inspect, modify, and retransmit any packet from captured files as well as work with live packet capture.&#8221; &#8211; pdb web page</p>

	<p>There is a twelve page manual on the web page that describes how to use the debugger as well.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/02/08/announcing-the-packet-debugger/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Configuration Files for FreeBSD Development on Parallels</title>
		<link>http://blogs.freebsdish.org/gnn/2007/02/08/configuration-files-for-freebsd-development-on-parallels/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/02/08/configuration-files-for-freebsd-development-on-parallels/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 05:08:12 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/02/08/configuration-files-for-freebsd-development-on-parallels/</guid>
		<description><![CDATA[	This post points to two files, PARA, my kernel configuration file, and loader.conf which sets the kernel&#8217;s HZ back to 100.  The default hz in FreeBSD CURRENT (will be 7.0) is now 1000 which is too high for Parallels to keep up with and causes it to eat about 15% of the CPU on [...]]]></description>
			<content:encoded><![CDATA[	<p>This post points to two files, <span class="caps">PARA</span>, my kernel configuration file, and loader.conf which sets the kernel&#8217;s HZ back to 100.  The default hz in FreeBSD <span class="caps">CURRENT </span>(will be 7.0) is now 1000 which is too high for Parallels to keep up with and causes it to eat about 15% of the <span class="caps">CPU</span> on my MacBook.   With HZ set to 100 an idle virtual machine uses only 5% of the <span class="caps">CPU</span>, which is less than <span class="caps">OSX</span>&#8217;s windowserver process.</p>

	<p>&lt;a href=people.freebsd.org/~gnn/PARA&gt;PARA&lt;/a&gt;</p>

	<p>&lt;a href=people.freebsd.org/~gnn/loader.conf&gt;loader.conf&lt;/a&gt;</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/02/08/configuration-files-for-freebsd-development-on-parallels/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Parallels Desktop as a Network Development System</title>
		<link>http://blogs.freebsdish.org/gnn/2007/02/08/parallels-desktop-as-a-network-development-system/</link>
		<comments>http://blogs.freebsdish.org/gnn/2007/02/08/parallels-desktop-as-a-network-development-system/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 04:55:04 +0000</pubDate>
		<dc:creator>gnn</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://blogs.freebsdish.org/gnn/2007/02/08/parallels-desktop-as-a-network-development-system/</guid>
		<description><![CDATA[	&#194;&#160;As some of you may, or may not know, I tend to do a lot of my kernel development in virtual machines, such as &#60;a href=www.vmware.com&#62;VMware&#60;/a&#62; and now &#60;a href=http://www.parallels.com/&#62;Parallels&#60;/a&#62; on my MacBook.  I find that virtual machines make the perfect test lab because you can easily create, copy, store, backup and delete them. [...]]]></description>
			<content:encoded><![CDATA[	<p>&Acirc;&nbsp;As some of you may, or may not know, I tend to do a lot of my kernel development in virtual machines, such as &lt;a href=www.vmware.com&gt;VMware&lt;/a&gt; and now &lt;a href=http://www.parallels.com/&gt;Parallels&lt;/a&gt; on my MacBook.  I find that virtual machines make the perfect test lab because you can easily create, copy, store, backup and delete them.  For a more full discussion of using virtual machines for kernel and protocol development see my presentat from the &lt;a href=http://www.bsdcan.org/2006/papers/VirtualProtocolandKernelDev.pdf&gt;BSDCan&lt;/a&gt; conference in 2006.</p>

	<p>To build a proper network test lab you not only need machines with multiple interfaces but a way to hook those interfaces to each other.  Until the most recent versions of Parallels, around December of 2006, this was not possible, and so I had to stick with VMware, on Linux.  Now with the advent of 3 types of networking on Parallels, bridged, shared and host only, it is possible to have 3 interfaces independently active for use in testing.</p>

	<p>At home my typical setup is that ed0 is a bridged network, which connects to the outside world, and ed1 is shared, and then ed2 is host only.  Testing occurs on ed1 and ed2 in order for there to be a &#8220;quiet&#8221; network on which to do tests.</p>

	<p>The next step that Parallels needs to take to make this truly work is to provide the equivalent of a hub per network, much like private networks in VMware, at which point all this messing about with different types of network interfaces can cease and I can safely continue to do testing wherever I like.</p>

	<p>For those of you who want to do this kind of work I will be uploading my kernel configuration and other files in another post.</p>
 ]]></content:encoded>
			<wfw:commentRss>http://blogs.freebsdish.org/gnn/2007/02/08/parallels-desktop-as-a-network-development-system/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
