This is an automated email from the ASF dual-hosted git repository. github-bot pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new 2c044254 Publishing web: 36ddd7c60a8230335eda886c909bc938739114a2 docs: fbd0b3d1d783cc8c1834db7a05c884466754e29b 2c044254 is described below commit 2c0442543543c8ae3c4ef84c2f43c97dc287f48a Author: Alin Jerpelea <alin.jerpe...@sony.com> AuthorDate: Wed Nov 8 00:13:21 2023 +0000 Publishing web: 36ddd7c60a8230335eda886c909bc938739114a2 docs: fbd0b3d1d783cc8c1834db7a05c884466754e29b --- content/docs/10.0.0/index.html | 2 +- content/docs/10.0.0/searchindex.js | 2 +- content/docs/10.0.1/index.html | 2 +- content/docs/10.0.1/searchindex.js | 2 +- content/docs/10.1.0/index.html | 2 +- content/docs/10.1.0/searchindex.js | 2 +- content/docs/10.2.0/index.html | 2 +- content/docs/10.2.0/searchindex.js | 2 +- content/docs/10.3.0/index.html | 2 +- content/docs/10.3.0/searchindex.js | 2 +- content/docs/11.0.0/index.html | 2 +- content/docs/11.0.0/searchindex.js | 2 +- content/docs/12.0.0/index.html | 2 +- content/docs/12.0.0/searchindex.js | 2 +- content/docs/12.1.0/index.html | 2 +- content/docs/12.1.0/searchindex.js | 2 +- content/docs/12.2.0/index.html | 2 +- content/docs/12.2.0/searchindex.js | 2 +- content/docs/12.2.1/index.html | 2 +- content/docs/12.2.1/searchindex.js | 2 +- content/docs/12.3.0/index.html | 2 +- content/docs/12.3.0/searchindex.js | 2 +- .../latest/_sources/reference/os/netdev.rst.txt | 187 ++++++++++ content/docs/latest/genindex.html | 40 +- content/docs/latest/index.html | 2 +- content/docs/latest/objects.inv | Bin 107561 -> 107882 bytes content/docs/latest/reference/os/nat.html | 4 +- content/docs/latest/reference/os/netdev.html | 412 +++++++++++++++++++++ content/docs/latest/searchindex.js | 2 +- content/feed.xml | 4 +- 30 files changed, 663 insertions(+), 32 deletions(-) diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html index 8d275126..32fd0c9e 100644 --- a/content/docs/10.0.0/index.html +++ b/content/docs/10.0.0/index.html @@ -131,7 +131,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:09</p> +<p>Last Updated: 08 November 23 at 00:09</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.0.0/searchindex.js b/content/docs/10.0.0/searchindex.js index 8d4cfc0d..a6408cef 100644 --- a/content/docs/10.0.0/searchindex.js +++ b/content/docs/10.0.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "boards/index", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/index", "components/drivers/character/keypad", "components/drivers/character/pwm", "components/drivers/character/quadrature", "components/drivers/character/rtc", "components/drivers/character/serial", "components/drivers/character/timer", "components/drivers/chara [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "boards/index", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/index", "components/drivers/character/keypad", "components/drivers/character/pwm", "components/drivers/character/quadrature", "components/drivers/character/rtc", "components/drivers/character/serial", "components/drivers/character/timer", "components/drivers/chara [...] \ No newline at end of file diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html index b959260c..155f6586 100644 --- a/content/docs/10.0.1/index.html +++ b/content/docs/10.0.1/index.html @@ -153,7 +153,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 32-bit microcontroller environments, the primary governing standards in NuttX are Posix and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:10</p> +<p>Last Updated: 08 November 23 at 00:10</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.0.1/searchindex.js b/content/docs/10.0.1/searchindex.js index 5db0c29c..ccc81325 100644 --- a/content/docs/10.0.1/searchindex.js +++ b/content/docs/10.0.1/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "boards/index", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/index", "components/drivers/character/keypad", "components/drivers/character/pwm", "components/drivers/character/quadrature", "components/drivers/character/rtc", "components/drivers/character/serial", "components/drivers/character/timer", "components/drivers/chara [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "boards/index", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/index", "components/drivers/character/keypad", "components/drivers/character/pwm", "components/drivers/character/quadrature", "components/drivers/character/rtc", "components/drivers/character/serial", "components/drivers/character/timer", "components/drivers/chara [...] \ No newline at end of file diff --git a/content/docs/10.1.0/index.html b/content/docs/10.1.0/index.html index 1704f314..f6aa504c 100644 --- a/content/docs/10.1.0/index.html +++ b/content/docs/10.1.0/index.html @@ -152,7 +152,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:10</p> +<p>Last Updated: 08 November 23 at 00:10</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.1.0/searchindex.js b/content/docs/10.1.0/searchindex.js index 3ca92a5b..26760347 100644 --- a/content/docs/10.1.0/searchindex.js +++ b/content/docs/10.1.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file diff --git a/content/docs/10.2.0/index.html b/content/docs/10.2.0/index.html index 59c40281..11aa03fa 100644 --- a/content/docs/10.2.0/index.html +++ b/content/docs/10.2.0/index.html @@ -153,7 +153,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:10</p> +<p>Last Updated: 08 November 23 at 00:10</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.2.0/searchindex.js b/content/docs/10.2.0/searchindex.js index f08d22cc..eddd29b8 100644 --- a/content/docs/10.2.0/searchindex.js +++ b/content/docs/10.2.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file diff --git a/content/docs/10.3.0/index.html b/content/docs/10.3.0/index.html index 59c40281..11aa03fa 100644 --- a/content/docs/10.3.0/index.html +++ b/content/docs/10.3.0/index.html @@ -153,7 +153,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:10</p> +<p>Last Updated: 08 November 23 at 00:10</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/10.3.0/searchindex.js b/content/docs/10.3.0/searchindex.js index 815e0546..5b0c4de4 100644 --- a/content/docs/10.3.0/searchindex.js +++ b/content/docs/10.3.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file diff --git a/content/docs/11.0.0/index.html b/content/docs/11.0.0/index.html index 59c40281..11aa03fa 100644 --- a/content/docs/11.0.0/index.html +++ b/content/docs/11.0.0/index.html @@ -153,7 +153,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:10</p> +<p>Last Updated: 08 November 23 at 00:10</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/11.0.0/searchindex.js b/content/docs/11.0.0/searchindex.js index d9741e7e..b2095bee 100644 --- a/content/docs/11.0.0/searchindex.js +++ b/content/docs/11.0.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file diff --git a/content/docs/12.0.0/index.html b/content/docs/12.0.0/index.html index 64b8b466..bd355c93 100644 --- a/content/docs/12.0.0/index.html +++ b/content/docs/12.0.0/index.html @@ -153,7 +153,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:11</p> +<p>Last Updated: 08 November 23 at 00:10</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.0.0/searchindex.js b/content/docs/12.0.0/searchindex.js index e99d76a7..41bf581b 100644 --- a/content/docs/12.0.0/searchindex.js +++ b/content/docs/12.0.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file diff --git a/content/docs/12.1.0/index.html b/content/docs/12.1.0/index.html index f71eb27c..cb3b81ad 100644 --- a/content/docs/12.1.0/index.html +++ b/content/docs/12.1.0/index.html @@ -153,7 +153,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:11</p> +<p>Last Updated: 08 November 23 at 00:11</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.1.0/searchindex.js b/content/docs/12.1.0/searchindex.js index 0e325034..8479b16c 100644 --- a/content/docs/12.1.0/searchindex.js +++ b/content/docs/12.1.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "components/binfmt", "components/drivers/block/index", "components/drivers/character/analog", "components/drivers/character/can", "components/drivers/character/foc", "components/drivers/character/index", "components [...] \ No newline at end of file diff --git a/content/docs/12.2.0/index.html b/content/docs/12.2.0/index.html index 4afb71a7..080323da 100644 --- a/content/docs/12.2.0/index.html +++ b/content/docs/12.2.0/index.html @@ -156,7 +156,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:11</p> +<p>Last Updated: 08 November 23 at 00:11</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.2.0/searchindex.js b/content/docs/12.2.0/searchindex.js index e7f10a8f..d0af64f0 100644 --- a/content/docs/12.2.0/searchindex.js +++ b/content/docs/12.2.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.2.1/index.html b/content/docs/12.2.1/index.html index 4afb71a7..080323da 100644 --- a/content/docs/12.2.1/index.html +++ b/content/docs/12.2.1/index.html @@ -156,7 +156,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:11</p> +<p>Last Updated: 08 November 23 at 00:11</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.2.1/searchindex.js b/content/docs/12.2.1/searchindex.js index 9019262e..4048cf9f 100644 --- a/content/docs/12.2.1/searchindex.js +++ b/content/docs/12.2.1/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.3.0/index.html b/content/docs/12.3.0/index.html index a09f90c4..65cb5aaa 100644 --- a/content/docs/12.3.0/index.html +++ b/content/docs/12.3.0/index.html @@ -156,7 +156,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></a></h1> <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:11</p> +<p>Last Updated: 08 November 23 at 00:11</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.3.0/searchindex.js b/content/docs/12.3.0/searchindex.js index a6853f2d..8c988532 100644 --- a/content/docs/12.3.0/searchindex.js +++ b/content/docs/12.3.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/index", "applications/nsh/builtin", "applications/nsh/commands", "applications/nsh/config", "applications/nsh/customizing", "applications/nsh/index", "applications/nsh/installation", "applications/nsh/login", "applications/nsh/nsh", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/latest/_sources/reference/os/netdev.rst.txt b/content/docs/latest/_sources/reference/os/netdev.rst.txt new file mode 100644 index 00000000..2bc0fe73 --- /dev/null +++ b/content/docs/latest/_sources/reference/os/netdev.rst.txt @@ -0,0 +1,187 @@ +=============== +Network Devices +=============== + +- ``include/nuttx/net/netdev.h``. All structures and APIs + needed to work with network drivers are provided in this + header file. The structure ``struct net_driver_s`` defines the + interface and is passed to the network via + ``netdev_register()``. + +IP Addresses +============ + +The structure ``struct net_driver_s`` now supports one IPv4 address and +multiple IPv6 addresses. Multiple IPv6 addresses is common in modern +network devices. For example, a network device may have a link-local +address and a global address. The link-local address is used for +neighbor discovery protocol and the global address is used for +communication with the Internet. + +Configuration Options +--------------------- + +``CONFIG_NETDEV_MULTIPLE_IPv6`` + Enable support for multiple IPv6 addresses per network device. + Depends on ``CONFIG_NET_IPv6``. +``CONFIG_NETDEV_MAX_IPv6_ADDR`` + Maximum number of IPv6 addresses that can be assigned to a single + network device. Normally a link-local address and a global address + are needed. + +IPv4 Interfaces +--------------- + +Now we only support one IPv4 address per network device, and directly +use the :c:member:`d_ipaddr`, :c:member:`d_draddr` and :c:member:`d_netmask` +in :c:struct:`net_driver_s`. + +.. c:struct:: net_driver_s + + .. code-block:: c + + struct net_driver_s + { + #ifdef CONFIG_NET_IPv4 + in_addr_t d_ipaddr; /* Host IPv4 address assigned to the network interface */ + in_addr_t d_draddr; /* Default router IP address */ + in_addr_t d_netmask; /* Network subnet mask */ + #endif + }; + +IPv6 Interfaces +--------------- + +Now we support multiple IPv6 addresses per network device, and use +the :c:member:`d_ipv6` in :c:struct:`net_driver_s` to store the IPv6 +addresses. For historical reason, we keep the old name :c:member:`d_ipv6addr` +and :c:member:`d_ipv6netmask` for backward compatibility. Please use +:c:member:`d_ipv6` for new drivers. + +.. c:struct:: net_driver_s + + .. code-block:: c + + struct net_driver_s + { + #ifdef CONFIG_NET_IPv6 + struct netdev_ifaddr6_s d_ipv6[CONFIG_NETDEV_MAX_IPv6_ADDR]; + #endif + }; + +Managing the IPv6 addresses by provided APIs would be more flexible: + + - :c:func:`netdev_ipv6_add()` + - :c:func:`netdev_ipv6_del()` + - :c:func:`netdev_ipv6_srcaddr()` + - :c:func:`netdev_ipv6_lladdr()` + - :c:func:`netdev_ipv6_lookup()` + - :c:func:`netdev_ipv6_foreach()` + +.. c:function:: int netdev_ipv6_add(FAR struct net_driver_s *dev, const net_ipv6addr_t addr, \ + unsigned int preflen); +.. c:function:: int netdev_ipv6_del(FAR struct net_driver_s *dev, const net_ipv6addr_t addr, \ + unsigned int preflen); + + Add or delete an IPv6 address on the network device + + :return: Zero is returned if the operation is successfully applied on + the device; A negated errno value is returned if failed. + +.. c:function:: FAR const uint16_t *netdev_ipv6_srcaddr(FAR struct net_driver_s *dev, \ + const net_ipv6addr_t dst); + + Get the source IPv6 address (RFC6724). + + :return: A pointer to the IPv6 address is returned on success. It will never be + NULL, but can be an address containing g_ipv6_unspecaddr. + +.. c:function:: FAR const uint16_t *netdev_ipv6_lladdr(FAR struct net_driver_s *dev); + + Get the link-local address of the network device. + + :return: A pointer to the link-local address is returned on success. + NULL is returned if the address is not found on the device. + +.. c:function:: FAR struct netdev_ifaddr6_s *netdev_ipv6_lookup(FAR struct net_driver_s *dev, \ + const net_ipv6addr_t addr, bool maskcmp); + + Look up an IPv6 address in the network device's IPv6 addresses + + :return: A pointer to the matching IPv6 address entry is returned on success. + NULL is returned if the IPv6 address is not found in the device. + +.. c:function:: int netdev_ipv6_foreach(FAR struct net_driver_s *dev, \ + devif_ipv6_callback_t callback, FAR void *arg); + + Enumerate each IPv6 address on a network device. This function will + terminate when either (1) all addresses have been enumerated or (2) when + a callback returns any non-zero value. + + :return: Zero is returned if the enumeration is successfully completed; + Non-zero value is returned if enumeration is terminated early by callback. + +Ioctls for IP Addresses +----------------------- + + - :c:macro:`SIOCGIFADDR` + - :c:macro:`SIOCSIFADDR` + - :c:macro:`SIOCDIFADDR` + - :c:macro:`SIOCGLIFADDR` + - :c:macro:`SIOCSLIFADDR` + - :c:macro:`SIOCGIFNETMASK` + - :c:macro:`SIOCSIFNETMASK` + - :c:macro:`SIOCGLIFNETMASK` + - :c:macro:`SIOCSLIFNETMASK` + +.. c:macro:: SIOCGIFADDR +.. c:macro:: SIOCSIFADDR +.. c:macro:: SIOCDIFADDR + + We just follow the Linux convention[1]: + + Get, set, or delete the address of the device using :c:member:`ifr_addr`, + or :c:member:`ifr6_addr` with :c:member:`ifr6_prefixlen`. + For compatibility, :c:macro:`SIOCGIFADDR` returns only :c:macro:`AF_INET` + addresses, :c:macro:`SIOCSIFADDR` accepts :c:macro:`AF_INET` and + :c:macro:`AF_INET6` addresses, and :c:macro:`SIOCDIFADDR` deletes + only :c:macro:`AF_INET6` addresses. A :c:macro:`AF_INET` address + can be deleted by setting it to zero via :c:macro:`SIOCSIFADDR`. + + Note: Unlike Linux, the maximum number of IPv6 addresses is limited on + NuttX. If you add more IPv6 addresses when we have already reached the + limit, the new addresses will replace addresses with same scope. + + [1]: https://man7.org/linux/man-pages/man7/netdevice.7.html + +.. c:macro:: SIOCGLIFADDR +.. c:macro:: SIOCSLIFADDR + + Get or set the IPv6 address of the device using :c:member:`lifr_addr`. + + We follow the Linux convention[1] to allow interface name to be + <eth>:<num>[2], to keep working with multiple IPv6 addresses. + + Note: Recommend to use :c:macro:`SIOCSIFADDR` and :c:macro:`SIOCDIFADDR` + to manage IPv6 addresses, by which you don't need to care about the + slot it stored. + + [1]: https://man7.org/linux/man-pages/man7/netdevice.7.html + [2]: e.g. 'eth0:0' stands for the secondary address on eth0 + +.. c:macro:: SIOCGIFNETMASK +.. c:macro:: SIOCSIFNETMASK + + Get or set the IPv4 network mask for a device using :c:member:`ifr_netmask`. + +.. c:macro:: SIOCGLIFNETMASK +.. c:macro:: SIOCSLIFNETMASK + + Get or set the IPv6 network mask for a device using :c:member:`lifr_netmask`. + + We follow the Linux convention to allow interface name to be <eth>:<num>, + to keep working with multiple IPv6 addresses. + + Note: Recommend to use :c:macro:`SIOCSIFADDR` and :c:macro:`SIOCDIFADDR` + to manage IPv6 addresses, by which you don't need to care about the + slot it stored. diff --git a/content/docs/latest/genindex.html b/content/docs/latest/genindex.html index 558444e2..7c73d541 100644 --- a/content/docs/latest/genindex.html +++ b/content/docs/latest/genindex.html @@ -669,9 +669,23 @@ <h2 id="N">N</h2> <table style="width: 100%" class="indextable genindextable"><tr> <td style="width: 33%; vertical-align: top;"><ul> + <li><a href="reference/os/netdev.html#c.net_driver_s">net_driver_s (C struct)</a>, <a href="reference/os/netdev.html#c.net_driver_s">[1]</a> +</li> <li><a href="glossary.html#term-NETDB"><strong>NETDB</strong></a> </li> <li><a href="glossary.html#term-NETDEV"><strong>NETDEV</strong></a> +</li> + <li><a href="reference/os/netdev.html#c.netdev_ipv6_add">netdev_ipv6_add (C function)</a> +</li> + <li><a href="reference/os/netdev.html#c.netdev_ipv6_del">netdev_ipv6_del (C function)</a> +</li> + <li><a href="reference/os/netdev.html#c.netdev_ipv6_foreach">netdev_ipv6_foreach (C function)</a> +</li> + <li><a href="reference/os/netdev.html#c.netdev_ipv6_lladdr">netdev_ipv6_lladdr (C function)</a> +</li> + <li><a href="reference/os/netdev.html#c.netdev_ipv6_lookup">netdev_ipv6_lookup (C function)</a> +</li> + <li><a href="reference/os/netdev.html#c.netdev_ipv6_srcaddr">netdev_ipv6_srcaddr (C function)</a> </li> <li><a href="glossary.html#term-NFS"><strong>NFS</strong></a> </li> @@ -823,14 +837,14 @@ </li> <li><a href="components/nxgraphics/nxcursor.html#c.nxcursor_setimage">nxcursor_setimage (C function)</a> </li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> <li><a href="components/nxgraphics/nxcursor.html#c.nxcursor_setposition">nxcursor_setposition (C function)</a> </li> <li><a href="components/nxgraphics/nxfonts.html#c.nxf_convert_16bpp">nxf_convert_16bpp (C function)</a> </li> <li><a href="components/nxgraphics/nxfonts.html#c.nxf_convert_24bpp">nxf_convert_24bpp (C function)</a> </li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> <li><a href="components/nxgraphics/nxfonts.html#c.nxf_convert_2bpp">nxf_convert_2bpp (C function)</a> </li> <li><a href="components/nxgraphics/nxfonts.html#c.nxf_convert_32bpp">nxf_convert_32bpp (C function)</a> @@ -1375,8 +1389,6 @@ </li> <li><a href="components/drivers/character/timers/timer.html#c.settimeout">settimeout (C function)</a> </li> - </ul></td> - <td style="width: 33%; vertical-align: top;"><ul> <li><a href="reference/user/12_shared_memory.html#c.shmat">shmat (C function)</a> </li> <li><a href="reference/user/12_shared_memory.html#c.shmctl">shmctl (C function)</a> @@ -1391,6 +1403,8 @@ <li><a href="reference/user/structures.html#c.sigaction">(C struct)</a> </li> </ul></li> + </ul></td> + <td style="width: 33%; vertical-align: top;"><ul> <li><a href="reference/user/07_signals.html#c.sigaddset">sigaddset (C function)</a> </li> <li><a href="reference/user/07_signals.html#c.sigdelset">sigdelset (C function)</a> @@ -1432,6 +1446,24 @@ <li><a href="reference/user/structures.html#c.sigval">sigval (C union)</a> </li> <li><a href="reference/user/07_signals.html#c.sigwaitinfo">sigwaitinfo (C function)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCDIFADDR">SIOCDIFADDR (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCGIFADDR">SIOCGIFADDR (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCGIFNETMASK">SIOCGIFNETMASK (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCGLIFADDR">SIOCGLIFADDR (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCGLIFNETMASK">SIOCGLIFNETMASK (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCSIFADDR">SIOCSIFADDR (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCSIFNETMASK">SIOCSIFNETMASK (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCSLIFADDR">SIOCSLIFADDR (C macro)</a> +</li> + <li><a href="reference/os/netdev.html#c.SIOCSLIFNETMASK">SIOCSLIFNETMASK (C macro)</a> </li> <li><a href="reference/user/structures.html#c.size_t">size_t (C type)</a> </li> diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html index e608ca3e..8e025ae6 100644 --- a/content/docs/latest/index.html +++ b/content/docs/latest/index.html @@ -163,7 +163,7 @@ standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p> -<p>Last Updated: 07 November 23 at 00:12</p> +<p>Last Updated: 08 November 23 at 00:12</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv index 372dfc9e..daea989d 100644 Binary files a/content/docs/latest/objects.inv and b/content/docs/latest/objects.inv differ diff --git a/content/docs/latest/reference/os/nat.html b/content/docs/latest/reference/os/nat.html index 357a80dc..a677e1ee 100644 --- a/content/docs/latest/reference/os/nat.html +++ b/content/docs/latest/reference/os/nat.html @@ -252,7 +252,7 @@ only trigger reclaiming on a few chains in hashtable).</p> </div></blockquote> <dl class="c function"> <dt class="sig sig-object c" id="c.ipv4_nat_enable"> -<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ipv4_nat_enable</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">net_driver_s</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><sp [...] +<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ipv4_nat_enable</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="netdev.html#c.net_driver_s" title="net_driver_s"><span class="n"><span class="pre">net_driver_s</span></span></a><sp [...] <dd><p>Enable NAT function on a network device, on which the outbound packets will be masqueraded.</p> <dl class="field-list simple"> @@ -265,7 +265,7 @@ the device; A negated errno value is returned if failed.</p> <dl class="c function"> <dt class="sig sig-object c" id="c.ipv4_nat_disable"> -<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ipv4_nat_disable</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">net_driver_s</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><s [...] +<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ipv4_nat_disable</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="netdev.html#c.net_driver_s" title="net_driver_s"><span class="n"><span class="pre">net_driver_s</span></span></a><s [...] <dd><p>Disable NAT function on a network device.</p> <dl class="field-list simple"> <dt class="field-odd">Returns<span class="colon">:</span></dt> diff --git a/content/docs/latest/reference/os/netdev.html b/content/docs/latest/reference/os/netdev.html new file mode 100644 index 00000000..aae3fe41 --- /dev/null +++ b/content/docs/latest/reference/os/netdev.html @@ -0,0 +1,412 @@ +<!-- + Documentation/_templates/layout.html + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. The + ASF licenses this file to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. +--> + +<!DOCTYPE html> +<html class="writer-html5" lang="en" > +<head> + <meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>Network Devices — NuttX latest documentation</title> + <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" /> + <link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" /> + <link rel="stylesheet" href="../../_static/copybutton.css" type="text/css" /> + <link rel="stylesheet" href="../../_static/tabs.css" type="text/css" /> + <link rel="stylesheet" href="../../_static/custom.css" type="text/css" /> + <link rel="shortcut icon" href="../../_static/favicon.ico"/> + <!--[if lt IE 9]> + <script src="../../_static/js/html5shiv.min.js"></script> + <![endif]--> + + <script src="../../_static/jquery.js"></script> + <script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script> + <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script> + <script src="../../_static/doctools.js"></script> + <script src="../../_static/sphinx_highlight.js"></script> + <script src="../../_static/clipboard.min.js"></script> + <script src="../../_static/copybutton.js"></script> + <script src="../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../genindex.html" /> + <link rel="search" title="Search" href="../../search.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + <a href="../../index.html" class="icon icon-home"> NuttX + + + + </a> + + <!-- this version selector is quite ugly, should be probably replaced by something + more modern --> + + <div class="version-selector"> + <select onchange="javascript:location.href = this.value;"> + + <option value="../../../latest" selected="selected">latest</option> + + <option value="../../../10.0.0" >10.0.0</option> + + <option value="../../../10.0.1" >10.0.1</option> + + <option value="../../../10.1.0" >10.1.0</option> + + <option value="../../../10.2.0" >10.2.0</option> + + <option value="../../../10.3.0" >10.3.0</option> + + <option value="../../../11.0.0" >11.0.0</option> + + <option value="../../../12.0.0" >12.0.0</option> + + <option value="../../../12.1.0" >12.1.0</option> + + <option value="../../../12.2.0" >12.2.0</option> + + <option value="../../../12.2.1" >12.2.1</option> + + <option value="../../../12.3.0" >12.3.0</option> + + </select> + </div> + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="../../index.html">Home</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../introduction/index.html">Introduction</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../quickstart/index.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../contributing/index.html">Contributing</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../platforms/index.html">Supported Platforms</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../components/index.html">OS Components</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../applications/index.html">Applications</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../implementation/index.html">Implementation Details</a></li> +<li class="toctree-l1"><a class="reference internal" href="../index.html">API Reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../faq/index.html">FAQ</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../guides/index.html">Guides</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../glossary.html">Glossary</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../index.html">NuttX</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item active">Network Devices</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../_sources/reference/os/netdev.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="network-devices"> +<h1>Network Devices<a class="headerlink" href="#network-devices" title="Permalink to this heading"></a></h1> +<ul class="simple"> +<li><p><code class="docutils literal notranslate"><span class="pre">include/nuttx/net/netdev.h</span></code>. All structures and APIs +needed to work with network drivers are provided in this +header file. The structure <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">net_driver_s</span></code> defines the +interface and is passed to the network via +<code class="docutils literal notranslate"><span class="pre">netdev_register()</span></code>.</p></li> +</ul> +<section id="ip-addresses"> +<h2>IP Addresses<a class="headerlink" href="#ip-addresses" title="Permalink to this heading"></a></h2> +<p>The structure <code class="docutils literal notranslate"><span class="pre">struct</span> <span class="pre">net_driver_s</span></code> now supports one IPv4 address and +multiple IPv6 addresses. Multiple IPv6 addresses is common in modern +network devices. For example, a network device may have a link-local +address and a global address. The link-local address is used for +neighbor discovery protocol and the global address is used for +communication with the Internet.</p> +<section id="configuration-options"> +<h3>Configuration Options<a class="headerlink" href="#configuration-options" title="Permalink to this heading"></a></h3> +<dl class="simple"> +<dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NETDEV_MULTIPLE_IPv6</span></code></dt><dd><p>Enable support for multiple IPv6 addresses per network device. +Depends on <code class="docutils literal notranslate"><span class="pre">CONFIG_NET_IPv6</span></code>.</p> +</dd> +<dt><code class="docutils literal notranslate"><span class="pre">CONFIG_NETDEV_MAX_IPv6_ADDR</span></code></dt><dd><p>Maximum number of IPv6 addresses that can be assigned to a single +network device. Normally a link-local address and a global address +are needed.</p> +</dd> +</dl> +</section> +<section id="ipv4-interfaces"> +<h3>IPv4 Interfaces<a class="headerlink" href="#ipv4-interfaces" title="Permalink to this heading"></a></h3> +<p>Now we only support one IPv4 address per network device, and directly +use the <code class="xref c c-member docutils literal notranslate"><span class="pre">d_ipaddr</span></code>, <code class="xref c c-member docutils literal notranslate"><span class="pre">d_draddr</span></code> and <code class="xref c c-member docutils literal notranslate"><span class="pre">d_netmask</span></code> +in <a class="reference internal" href="#c.net_driver_s" title="net_driver_s"><code class="xref c c-struct docutils literal notranslate"><span class="pre">net_driver_s</span></code></a>.</p> +<dl class="c struct"> +<dt class="sig sig-object c" id="c.net_driver_s"> +<span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">net_driver_s</span></span></span><a class="headerlink" href="#c.net_driver_s" title="Permalink to this definition"></a><br /></dt> +<dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">net_driver_s</span> +<span class="p">{</span> +<span class="cp">#ifdef CONFIG_NET_IPv4</span> +<span class="w"> </span><span class="n">in_addr_t</span><span class="w"> </span><span class="n">d_ipaddr</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Host IPv4 address assigned to the network interface */</span> +<span class="w"> </span><span class="n">in_addr_t</span><span class="w"> </span><span class="n">d_draddr</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Default router IP address */</span> +<span class="w"> </span><span class="n">in_addr_t</span><span class="w"> </span><span class="n">d_netmask</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Network subnet mask */</span> +<span class="cp">#endif</span> +<span class="p">};</span> +</pre></div> +</div> +</dd></dl> + +</section> +<section id="ipv6-interfaces"> +<h3>IPv6 Interfaces<a class="headerlink" href="#ipv6-interfaces" title="Permalink to this heading"></a></h3> +<p>Now we support multiple IPv6 addresses per network device, and use +the <code class="xref c c-member docutils literal notranslate"><span class="pre">d_ipv6</span></code> in <a class="reference internal" href="#c.net_driver_s" title="net_driver_s"><code class="xref c c-struct docutils literal notranslate"><span class="pre">net_driver_s</span></code></a> to store the IPv6 +addresses. For historical reason, we keep the old name <code class="xref c c-member docutils literal notranslate"><span class="pre">d_ipv6addr</span></code> +and <code class="xref c c-member docutils literal notranslate"><span class="pre">d_ipv6netmask</span></code> for backward compatibility. Please use +<code class="xref c c-member docutils literal notranslate"><span class="pre">d_ipv6</span></code> for new drivers.</p> +<dl class="c struct"> +<dt class="sig sig-object c"> +<span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">net_driver_s</span></span></span><br /></dt> +<dd><div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span><span class="w"> </span><span class="nc">net_driver_s</span> +<span class="p">{</span> +<span class="cp">#ifdef CONFIG_NET_IPv6</span> +<span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">netdev_ifaddr6_s</span><span class="w"> </span><span class="n">d_ipv6</span><span class="p">[</span><span class="n">CONFIG_NETDEV_MAX_IPv6_ADDR</span><span class="p">];</span> +<span class="cp">#endif</span> +<span class="p">};</span> +</pre></div> +</div> +</dd></dl> + +<p>Managing the IPv6 addresses by provided APIs would be more flexible:</p> +<blockquote> +<div><ul class="simple"> +<li><p><a class="reference internal" href="#c.netdev_ipv6_add" title="netdev_ipv6_add"><code class="xref c c-func docutils literal notranslate"><span class="pre">netdev_ipv6_add()</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.netdev_ipv6_del" title="netdev_ipv6_del"><code class="xref c c-func docutils literal notranslate"><span class="pre">netdev_ipv6_del()</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.netdev_ipv6_srcaddr" title="netdev_ipv6_srcaddr"><code class="xref c c-func docutils literal notranslate"><span class="pre">netdev_ipv6_srcaddr()</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.netdev_ipv6_lladdr" title="netdev_ipv6_lladdr"><code class="xref c c-func docutils literal notranslate"><span class="pre">netdev_ipv6_lladdr()</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.netdev_ipv6_lookup" title="netdev_ipv6_lookup"><code class="xref c c-func docutils literal notranslate"><span class="pre">netdev_ipv6_lookup()</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.netdev_ipv6_foreach" title="netdev_ipv6_foreach"><code class="xref c c-func docutils literal notranslate"><span class="pre">netdev_ipv6_foreach()</span></code></a></p></li> +</ul> +</div></blockquote> +<dl class="c function"> +<dt class="sig sig-object c" id="c.netdev_ipv6_add"> +<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">netdev_ipv6_add</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#c.net_driver_s" title="net_driver_s"><span class="n"><span class="pre">net_driver_s</span></span></a><span class="w [...] +<dd></dd></dl> + +<dl class="c function"> +<dt class="sig sig-object c" id="c.netdev_ipv6_del"> +<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">netdev_ipv6_del</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#c.net_driver_s" title="net_driver_s"><span class="n"><span class="pre">net_driver_s</span></span></a><span class="w [...] +<dd><p>Add or delete an IPv6 address on the network device</p> +<dl class="field-list simple"> +<dt class="field-odd">Returns<span class="colon">:</span></dt> +<dd class="field-odd"><p>Zero is returned if the operation is successfully applied on +the device; A negated errno value is returned if failed.</p> +</dd> +</dl> +</dd></dl> + +<dl class="c function"> +<dt class="sig sig-object c" id="c.netdev_ipv6_srcaddr"> +<span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">netdev_ipv6_srcaddr</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</sp [...] +<dd><p>Get the source IPv6 address (RFC6724).</p> +<dl class="field-list simple"> +<dt class="field-odd">Returns<span class="colon">:</span></dt> +<dd class="field-odd"><p>A pointer to the IPv6 address is returned on success. It will never be +NULL, but can be an address containing g_ipv6_unspecaddr.</p> +</dd> +</dl> +</dd></dl> + +<dl class="c function"> +<dt class="sig sig-object c" id="c.netdev_ipv6_lladdr"> +<span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">netdev_ipv6_lladdr</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</spa [...] +<dd><p>Get the link-local address of the network device.</p> +<dl class="field-list simple"> +<dt class="field-odd">Returns<span class="colon">:</span></dt> +<dd class="field-odd"><p>A pointer to the link-local address is returned on success. +NULL is returned if the address is not found on the device.</p> +</dd> +</dl> +</dd></dl> + +<dl class="c function"> +<dt class="sig sig-object c" id="c.netdev_ipv6_lookup"> +<span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">netdev_ifaddr6_s</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">netdev_ipv6_lookup</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">st [...] +<dd><p>Look up an IPv6 address in the network device’s IPv6 addresses</p> +<dl class="field-list simple"> +<dt class="field-odd">Returns<span class="colon">:</span></dt> +<dd class="field-odd"><p>A pointer to the matching IPv6 address entry is returned on success. +NULL is returned if the IPv6 address is not found in the device.</p> +</dd> +</dl> +</dd></dl> + +<dl class="c function"> +<dt class="sig sig-object c" id="c.netdev_ipv6_foreach"> +<span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">netdev_ipv6_foreach</span></span></span><span class="sig-paren">(</span><span class="pre">FAR</span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#c.net_driver_s" title="net_driver_s"><span class="n"><span class="pre">net_driver_s</span></span></a><span clas [...] +<dd><p>Enumerate each IPv6 address on a network device. This function will +terminate when either (1) all addresses have been enumerated or (2) when +a callback returns any non-zero value.</p> +<dl class="field-list simple"> +<dt class="field-odd">Returns<span class="colon">:</span></dt> +<dd class="field-odd"><p>Zero is returned if the enumeration is successfully completed; +Non-zero value is returned if enumeration is terminated early by callback.</p> +</dd> +</dl> +</dd></dl> + +</section> +<section id="ioctls-for-ip-addresses"> +<h3>Ioctls for IP Addresses<a class="headerlink" href="#ioctls-for-ip-addresses" title="Permalink to this heading"></a></h3> +<blockquote> +<div><ul class="simple"> +<li><p><a class="reference internal" href="#c.SIOCGIFADDR" title="SIOCGIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCGIFADDR</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCSIFADDR" title="SIOCSIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSIFADDR</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCDIFADDR" title="SIOCDIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCDIFADDR</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCGLIFADDR" title="SIOCGLIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCGLIFADDR</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCSLIFADDR" title="SIOCSLIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSLIFADDR</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCGIFNETMASK" title="SIOCGIFNETMASK"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCGIFNETMASK</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCSIFNETMASK" title="SIOCSIFNETMASK"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSIFNETMASK</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCGLIFNETMASK" title="SIOCGLIFNETMASK"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCGLIFNETMASK</span></code></a></p></li> +<li><p><a class="reference internal" href="#c.SIOCSLIFNETMASK" title="SIOCSLIFNETMASK"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSLIFNETMASK</span></code></a></p></li> +</ul> +</div></blockquote> +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCGIFADDR"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCGIFADDR</span></span></span><a class="headerlink" href="#c.SIOCGIFADDR" title="Permalink to this definition"></a><br /></dt> +<dd></dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCSIFADDR"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCSIFADDR</span></span></span><a class="headerlink" href="#c.SIOCSIFADDR" title="Permalink to this definition"></a><br /></dt> +<dd></dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCDIFADDR"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCDIFADDR</span></span></span><a class="headerlink" href="#c.SIOCDIFADDR" title="Permalink to this definition"></a><br /></dt> +<dd><p>We just follow the Linux convention[1]:</p> +<blockquote> +<div><p>Get, set, or delete the address of the device using <code class="xref c c-member docutils literal notranslate"><span class="pre">ifr_addr</span></code>, +or <code class="xref c c-member docutils literal notranslate"><span class="pre">ifr6_addr</span></code> with <code class="xref c c-member docutils literal notranslate"><span class="pre">ifr6_prefixlen</span></code>. +For compatibility, <a class="reference internal" href="#c.SIOCGIFADDR" title="SIOCGIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCGIFADDR</span></code></a> returns only <code class="xref c c-macro docutils literal notranslate"><span class="pre">AF_INET</span></code> +addresses, <a class="reference internal" href="#c.SIOCSIFADDR" title="SIOCSIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSIFADDR</span></code></a> accepts <code class="xref c c-macro docutils literal notranslate"><span class="pre">AF_INET</span></code> and +<code class="xref c c-macro docutils literal notranslate"><span class="pre">AF_INET6</span></code> addresses, and <a class="reference internal" href="#c.SIOCDIFADDR" title="SIOCDIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCDIFADDR</span></code></a> deletes +only <code class="xref c c-macro docutils literal notranslate"><span class="pre">AF_INET6</span></code> addresses. A <code class="xref c c-macro docutils literal notranslate"><span class="pre">AF_INET</span></code> address +can be deleted by setting it to zero via <a class="reference internal" href="#c.SIOCSIFADDR" title="SIOCSIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSIFADDR</span></code></a>.</p> +</div></blockquote> +<p>Note: Unlike Linux, the maximum number of IPv6 addresses is limited on +NuttX. If you add more IPv6 addresses when we have already reached the +limit, the new addresses will replace addresses with same scope.</p> +<p>[1]: <a class="reference external" href="https://man7.org/linux/man-pages/man7/netdevice.7.html">https://man7.org/linux/man-pages/man7/netdevice.7.html</a></p> +</dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCGLIFADDR"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCGLIFADDR</span></span></span><a class="headerlink" href="#c.SIOCGLIFADDR" title="Permalink to this definition"></a><br /></dt> +<dd></dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCSLIFADDR"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCSLIFADDR</span></span></span><a class="headerlink" href="#c.SIOCSLIFADDR" title="Permalink to this definition"></a><br /></dt> +<dd><p>Get or set the IPv6 address of the device using <code class="xref c c-member docutils literal notranslate"><span class="pre">lifr_addr</span></code>.</p> +<p>We follow the Linux convention[1] to allow interface name to be +<eth>:<num>[2], to keep working with multiple IPv6 addresses.</p> +<p>Note: Recommend to use <a class="reference internal" href="#c.SIOCSIFADDR" title="SIOCSIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSIFADDR</span></code></a> and <a class="reference internal" href="#c.SIOCDIFADDR" title="SIOCDIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCDIFADDR</span></code></a> +to manage IPv6 addresses, by which you don’t need to care about the +slot it stored.</p> +<p>[1]: <a class="reference external" href="https://man7.org/linux/man-pages/man7/netdevice.7.html">https://man7.org/linux/man-pages/man7/netdevice.7.html</a> +[2]: e.g. ‘eth0:0’ stands for the secondary address on eth0</p> +</dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCGIFNETMASK"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCGIFNETMASK</span></span></span><a class="headerlink" href="#c.SIOCGIFNETMASK" title="Permalink to this definition"></a><br /></dt> +<dd></dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCSIFNETMASK"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCSIFNETMASK</span></span></span><a class="headerlink" href="#c.SIOCSIFNETMASK" title="Permalink to this definition"></a><br /></dt> +<dd><p>Get or set the IPv4 network mask for a device using <code class="xref c c-member docutils literal notranslate"><span class="pre">ifr_netmask</span></code>.</p> +</dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCGLIFNETMASK"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCGLIFNETMASK</span></span></span><a class="headerlink" href="#c.SIOCGLIFNETMASK" title="Permalink to this definition"></a><br /></dt> +<dd></dd></dl> + +<dl class="c macro"> +<dt class="sig sig-object c" id="c.SIOCSLIFNETMASK"> +<span class="sig-name descname"><span class="n"><span class="pre">SIOCSLIFNETMASK</span></span></span><a class="headerlink" href="#c.SIOCSLIFNETMASK" title="Permalink to this definition"></a><br /></dt> +<dd><p>Get or set the IPv6 network mask for a device using <code class="xref c c-member docutils literal notranslate"><span class="pre">lifr_netmask</span></code>.</p> +<p>We follow the Linux convention to allow interface name to be <eth>:<num>, +to keep working with multiple IPv6 addresses.</p> +<p>Note: Recommend to use <a class="reference internal" href="#c.SIOCSIFADDR" title="SIOCSIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCSIFADDR</span></code></a> and <a class="reference internal" href="#c.SIOCDIFADDR" title="SIOCDIFADDR"><code class="xref c c-macro docutils literal notranslate"><span class="pre">SIOCDIFADDR</span></code></a> +to manage IPv6 addresses, by which you don’t need to care about the +slot it stored.</p> +</dd></dl> + +</section> +</section> +</section> + + + </div> + </div> + <footer> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2023, The Apache Software Foundation.</p> + </div> + + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> +</html> \ No newline at end of file diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js index 24948d1b..83f723d3 100644 --- a/content/docs/latest/searchindex.js +++ b/content/docs/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/feed.xml b/content/feed.xml index b42b132c..ec9bee15 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -5,8 +5,8 @@ <description></description> <link>/</link> <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Tue, 07 Nov 2023 00:13:18 +0000</pubDate> - <lastBuildDate>Tue, 07 Nov 2023 00:13:18 +0000</lastBuildDate> + <pubDate>Wed, 08 Nov 2023 00:13:16 +0000</pubDate> + <lastBuildDate>Wed, 08 Nov 2023 00:13:16 +0000</lastBuildDate> <generator>Jekyll v4.3.2</generator> <item>