<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Mesh on Insignificant Bits</title>
    <link>https://bobcopeland.com/blog/tags/mesh/</link>
    <description>Recent content in Mesh on Insignificant Bits</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Mon, 31 Oct 2016 13:32:19 +0000</lastBuildDate>
    <atom:link href="https://bobcopeland.com/blog/tags/mesh/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Encrypted mesh PSA</title>
      <link>https://bobcopeland.com/blog/2016/10/encrypted-mesh-psa/</link>
      <pubDate>Mon, 31 Oct 2016 13:32:19 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2318</guid> 
      <description>&lt;p&gt;I&amp;rsquo;m a bit late writing this up, as lately wifi stuff has taken a back seat to the day job. But, I&amp;rsquo;ve now seen the following issue reported more than once, so hopefully this post will save the other two mesh users some grief.&lt;/p&gt;
&lt;p&gt;If you are running an encrypted mesh on wpa_supplicant or (ye gods) authsae, take note:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Encrypted mesh on kernel 4.8 will not interoperate with kernel &amp;lt; 4.8&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wpa_supplicant 2.6 will not interoperate with 2.5&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;authsae as of commit 706a2cf will not interoperate with that of commit 813ec0e [1]&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;wpa_supplicant 2.6 and authsae commit 706a2cf require additional configuration to work with kernel &amp;lt; 4.8 (see below).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>memory Âµ-optimizing</title>
      <link>https://bobcopeland.com/blog/2016/03/memory-%C2%B5-optimizing/</link>
      <pubDate>Tue, 15 Mar 2016 12:27:35 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2279</guid> 
      <description>&lt;p&gt;While looking at some kmalloc statistics for my little corner of wireless, I found a new tool for the toolbox: &lt;code&gt;perf kmem&lt;/code&gt;. To test it out, I ran a simulated connected 25-node mesh in mac80211_hwsim.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s what &lt;code&gt;perf kmem stat --caller&lt;/code&gt; had to say:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-gdscript3&#34; data-lang=&#34;gdscript3&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;---------------------------------------------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; Callsite            &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; Total_alloc&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;Per &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; Total_req&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;Per  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; Hit   &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;---------------------------------------------------------------------&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; mesh_table_alloc&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt;e &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;      &lt;span style=&#34;color:#ae81ff&#34;&gt;1600&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;32&lt;/span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;       &lt;span style=&#34;color:#ae81ff&#34;&gt;400&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8&lt;/span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;50&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; mesh_rmc_init&lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;23&lt;/span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;204800&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;8192&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;102600&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;4104&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;25&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt; mesh_path_new&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;const&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;315904&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;512&lt;/span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;    &lt;span style=&#34;color:#ae81ff&#34;&gt;241864&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;/&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;392&lt;/span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;   &lt;span style=&#34;color:#ae81ff&#34;&gt;617&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;|&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;]
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The number of mesh nodes shows up in the &amp;lsquo;Hit&amp;rsquo; column in various ways: we can pretty easily see that mesh_table_alloc is called twice per mesh device, mesh_rmc_init is called once, and mesh_path_new is called at least once for every peer (617 ~= 25 * 24). We might scan the hit column to see if there are any cases in our code that perform unexpectedly high numbers of allocations, signifying a bug or poor design.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sae.py</title>
      <link>https://bobcopeland.com/blog/2015/12/sae-py/</link>
      <pubDate>Thu, 31 Dec 2015 23:57:47 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2250</guid> 
      <description>&lt;p&gt;For a while now, I&amp;rsquo;ve wanted an easy way to decrypt a mesh packet capture when I know the SAE passphrase. This would be quite handy for debugging.&lt;/p&gt;
&lt;p&gt;I reasoned that, if I knew the shared secret, and had captured the over-the-air exchange, it should be possible to make such a tool, right? We know everything each station knows in that case, don&amp;rsquo;t we?&lt;/p&gt;
&lt;p&gt;So I spent a bit of time last week reimplementing &lt;a href=&#34;https://github.com/bcopeland/wifi-crypto/blob/master/sae.py&#34;&gt;SAE in python&lt;/a&gt; to come to grips with its various steps. And I found my reasoning was flawed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VHT mesh</title>
      <link>https://bobcopeland.com/blog/2015/07/vht-mesh/</link>
      <pubDate>Tue, 14 Jul 2015 04:43:30 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2200</guid> 
      <description>&lt;p&gt;&amp;hellip;is a thing now.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# iw dev
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;phy#0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Interface wlan0
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		ifindex 4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		wdev 0x1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		addr 30:b5:c2:fb:34:d8
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		type mesh point
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;		channel 149 (5745 MHz), width: 80 MHz, center1: 5775 MHz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# iperf -c 192.168.1.20
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Client connecting to 192.168.1.20, TCP port 5001
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;TCP window size: 43.8 KByte (default)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;------------------------------------------------------------
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  3] local 192.168.1.21 port 34175 connected with 192.168.1.20 port 5001
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[ ID] Interval       Transfer     Bandwidth
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[  3]  0.0-10.0 sec   148 MBytes   124 Mbits/sec
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>mesh on ath10k</title>
      <link>https://bobcopeland.com/blog/2015/04/mesh-on-ath10k/</link>
      <pubDate>Tue, 28 Apr 2015 18:25:16 +0000</pubDate>
       <guid isPermaLink="false">http://bobcopeland.com/blog/?p=2180</guid> 
      <description>&lt;p&gt;I&amp;rsquo;ve had my ath10k AP (TP-Link Archer C7 v2) since last October or so, with the goal of having a VHT-capable device with which to test (currently non-existent) VHT mesh. Unfortunately, for nearly all of that time, I&amp;rsquo;ve been stuck on a firmware crash shortly after bringing up the device. Not that I&amp;rsquo;ve spent a whole lot of time on it, but there&amp;rsquo;s only so much one can do when getting to the point of &amp;ldquo;firmware crashes and it has something to do with peers but that&amp;rsquo;s all I know and I don&amp;rsquo;t have the time, tools, or code to dig deeper.&amp;rdquo;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
