<feed xmlns='http://www.w3.org/2005/Atom'>
<title>wireguard-linux/net/bridge/br_fdb.c, branch jd/unified-crypt-queue</title>
<subtitle>WireGuard for the Linux kernel</subtitle>
<id>https://git.zx2c4.com/wireguard-linux/atom/net/bridge/br_fdb.c?h=jd%2Funified-crypt-queue</id>
<link rel='self' href='https://git.zx2c4.com/wireguard-linux/atom/net/bridge/br_fdb.c?h=jd%2Funified-crypt-queue'/>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/'/>
<updated>2019-11-04T19:15:27Z</updated>
<entry>
<title>net: bridge: fdb: eliminate extra port state tests from fast-path</title>
<updated>2019-11-04T19:15:27Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-11-04T09:36:51Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=5d1fcaf35d74b4188d238e46f0be37c14a01f169'/>
<id>urn:sha1:5d1fcaf35d74b4188d238e46f0be37c14a01f169</id>
<content type='text'>
When commit df1c0b8468b3 ("[BRIDGE]: Packets leaking out of
disabled/blocked ports.") introduced the port state tests in
br_fdb_update() it was to avoid learning/refreshing from STP BPDUs, it was
also used to avoid learning/refreshing from user-space with NTF_USE. Those
two tests are done for every packet entering the bridge if it's learning,
but for the fast-path we already have them checked in br_handle_frame() and
is unnecessary to do it again. Thus push the checks to the unlikely cases
and drop them from br_fdb_update(), the new nbp_state_should_learn() helper
is used to determine if the port state allows br_fdb_update() to be called.
The two places which need to do it manually are:
 - user-space add call with NTF_USE set
 - link-local packet learning done in __br_handle_local_finish()

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: restore unlikely() when taking over externally added entries</title>
<updated>2019-11-01T17:32:43Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-11-01T12:46:39Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=58ec1ea637ca2230c69d6972985ba619366c688b'/>
<id>urn:sha1:58ec1ea637ca2230c69d6972985ba619366c688b</id>
<content type='text'>
Taking over hw-learned entries is not a likely scenario so restore the
unlikely() use for the case of SW taking over externally learned
entries.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: avoid two atomic bitops in br_fdb_external_learn_add()</title>
<updated>2019-11-01T17:32:43Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-11-01T12:46:38Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=31f1155bdc26aabd8de4bdf25e1c9ce9dbb21ff5'/>
<id>urn:sha1:31f1155bdc26aabd8de4bdf25e1c9ce9dbb21ff5</id>
<content type='text'>
If we setup the fdb flags prior to calling fdb_create() we can avoid
two atomic bitops when learning a new entry.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: br_fdb_update can take flags directly</title>
<updated>2019-11-01T17:32:43Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-11-01T12:46:37Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=be0c5677970d4f21dc701136a178437aad9983b2'/>
<id>urn:sha1:be0c5677970d4f21dc701136a178437aad9983b2</id>
<content type='text'>
If we modify br_fdb_update() to take flags directly we can get rid of
one test and one atomic bitop in the learning path.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: set flags directly in fdb_create</title>
<updated>2019-10-30T01:12:49Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-10-29T11:45:59Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=3fb01a31afdab9f046fc11ce430c69e6e3b7b9a6'/>
<id>urn:sha1:3fb01a31afdab9f046fc11ce430c69e6e3b7b9a6</id>
<content type='text'>
No need to have separate arguments for each flag, just set the flags to
whatever was passed to fdb_create() before the fdb is published.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: convert offloaded to use bitops</title>
<updated>2019-10-30T01:12:49Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-10-29T11:45:58Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=d38c6e3db0c4314efadf53ddcf98345a4b115f31'/>
<id>urn:sha1:d38c6e3db0c4314efadf53ddcf98345a4b115f31</id>
<content type='text'>
Convert the offloaded field to a flag and use bitops.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: convert added_by_external_learn to use bitops</title>
<updated>2019-10-30T01:12:49Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-10-29T11:45:57Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=b5cd9f7c42480ede119a390607a9dbe6263f6795'/>
<id>urn:sha1:b5cd9f7c42480ede119a390607a9dbe6263f6795</id>
<content type='text'>
Convert the added_by_external_learn field to a flag and use bitops.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: convert added_by_user to bitops</title>
<updated>2019-10-30T01:12:49Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-10-29T11:45:56Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=ac3ca6af443aa495c7907e5010ac77fbd2450eaa'/>
<id>urn:sha1:ac3ca6af443aa495c7907e5010ac77fbd2450eaa</id>
<content type='text'>
Straight-forward convert of the added_by_user field to bitops.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: convert is_sticky to bitops</title>
<updated>2019-10-30T01:12:49Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-10-29T11:45:55Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=e0458d9a733ba71a2821d0c3fc0745baac697db0'/>
<id>urn:sha1:e0458d9a733ba71a2821d0c3fc0745baac697db0</id>
<content type='text'>
Straight-forward convert of the is_sticky field to bitops.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: bridge: fdb: convert is_static to bitops</title>
<updated>2019-10-30T01:12:49Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2019-10-29T11:45:54Z</published>
<link rel='alternate' type='text/html' href='https://git.zx2c4.com/wireguard-linux/commit/?id=29e63fffd666f1945756882d4b02bc7bec132101'/>
<id>urn:sha1:29e63fffd666f1945756882d4b02bc7bec132101</id>
<content type='text'>
Convert the is_static to bitops, make use of the combined
test_and_set/clear_bit to simplify expressions in fdb_add_entry.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
