<h3>Contribution description</h3>
<p>This PR implements the proposal from <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="606435613" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/13943" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/13943/hovercard?comment_id=724699696&comment_type=issue_comment" href="https://github.com/RIOT-OS/RIOT/pull/13943#issuecomment-724699696">#13943 (comment)</a> (in a slightly different way, as described above).</p>
<p>This removes the <code>set_rx_mode</code> and <code>set_hw_addr_filter</code> and replace them with 3 functions:</p>
<ul>
<li><code>config_addr_filter</code></li>
<li><code>set_frame_filter_mode</code></li>
<li><code>config_src_addr_match</code></li>
</ul>
<p>The original proposal didn't include the <code>set_frame_filter_mode</code>, but it turns out to be much better IMO to split the original proposal of <code>config_addr_filter</code> because there's indeed a mode for the frame filter (promisc, sniffer, accept only ACK frames, etc). This also adds a "reject all frames" mode, that might be useful for certain stacks (e.g OpenWSN).</p>
<p>Also, a `CONFIG_IEEE802154_AUTO_ACK_DISABLE macro was added in order to disable Auto ACK in radios (required for OpenWSN)</p>

<h3>Testing procedure</h3>
<ul>
<li>Test that <code>examples/gnrc_networking</code> runs properly with <code>netdev_ieee802154_submac</code>.</li>
<li>OpenWSN should also be tested to ensure that everything works ok</li>
</ul>

<h3>Issues/PRs references</h3>
<p><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="606435613" data-permission-text="Title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/13943" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/13943/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/13943">#13943</a></p>


<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/RIOT-OS/RIOT/pull/15468'>https://github.com/RIOT-OS/RIOT/pull/15468</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>ieee802154/hal: add config src address match</li>
  <li>ieee802154/hal: add set frame filter</li>
  <li>ieee802154/hal: add set config addr filter</li>
  <li>ieee802154: add Auto ACK compile time config</li>
  <li>nrf52840: adapt to Radio HAL changes</li>
  <li>cc2538_rf: adapt to Radio HAL changes</li>
  <li>ieee802154/hal: remove set_hw_addr_filter</li>
  <li>ieee802154/hal: remove set_rx_mode</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-13d4fe29da56bce4abaf9aa23e00b4b15150960324d37f2e6970f2f50ef0a3a2">cpu/cc2538/radio/cc2538_rf.c</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-70c37486e389ccf6a2c01b061d234cec738f962dbaa00cb02f559739974d3894">cpu/cc2538/radio/cc2538_rf_radio_ops.c</a>
    (126)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-8401bee06d5cdee99d629e1c04c687458931e9ba02b2a41662dd322ad6fee6ee">cpu/nrf52/radio/nrf802154/nrf802154_radio.c</a>
    (75)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-a53a19de5dd65ed281333d8bc7c200e23526097806a9c1b8a1ef3cd83c6389d6">pkg/openwsn/Makefile.include</a>
    (5)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-d824470ae4cf7754ac3ff08f03d355517715a1185f332347ddaeb515a0f12202">pkg/openwsn/contrib/radio_hal.c</a>
    (15)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-94d26e63cedcf52e03cced4a7b7adec3674b18d549b68318052a164e7c95c12d">sys/include/net/ieee802154.h</a>
    (7)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-930a92014b4581b33a109542bf98cd69bbe6fe7dff24ffafc76107531cee63fd">sys/include/net/ieee802154/radio.h</a>
    (271)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-dc9bf753d1cfca39b8af2ae5c55191781bcbc19cfe2a87ef5d0e6622ebcf32ce">sys/include/net/ieee802154/submac.h</a>
    (10)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-0215bf35cecbd2c2a8cab7f93507d3ab13963bcba286ad2b42297303d2db29d5">sys/net/link_layer/ieee802154/Kconfig</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-57071dfbe10ebb068f8742904b659a15c0edf3117d9baaea91985a55d0d9dea2">sys/net/link_layer/ieee802154/submac.c</a>
    (17)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/15468/files#diff-46a185713fc29cbe549a3680baff48b58bce2e594f15879368a06e4932edcae5">tests/ieee802154_hal/main.c</a>
    (44)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/15468.patch'>https://github.com/RIOT-OS/RIOT/pull/15468.patch</a></li>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/15468.diff'>https://github.com/RIOT-OS/RIOT/pull/15468.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/15468">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABE7WYEEFDQRWU3R3MRR5Y3SQPLUTANCNFSM4T2BT37Q">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABE7WYDWULIU5H5OOAA5CJLSQPLUTA5CNFSM4T2BT372YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4LDSWS7A.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/15468",
"url": "https://github.com/RIOT-OS/RIOT/pull/15468",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>