<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Dynamic_LNet_Configuration_and_lnetctl</id>
	<title>Dynamic LNet Configuration and lnetctl - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.lustre.org/index.php?action=history&amp;feed=atom&amp;title=Dynamic_LNet_Configuration_and_lnetctl"/>
	<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;action=history"/>
	<updated>2026-08-06T04:03:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;diff=2798&amp;oldid=prev</id>
		<title>Malcolm at 04:30, 11 September 2017</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;diff=2798&amp;oldid=prev"/>
		<updated>2017-09-11T04:30:12Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:30, 10 September 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Line 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Configuration applied by &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; will be lost when the &amp;lt;code&amp;gt;lnet&amp;lt;/code&amp;gt; kernel module is unloaded or the host is rebooted. To preserve the configuration, it can be exported to a file so that it can be re-imported when the host is restarted.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Configuration applied by &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; will be lost when the &amp;lt;code&amp;gt;lnet&amp;lt;/code&amp;gt; kernel module is unloaded or the host is rebooted. To preserve the configuration, it can be exported to a file so that it can be re-imported when the host is restarted.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To save an LNet configuration, use:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To save an LNet configuration, use &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;either &amp;lt;code&amp;gt;lnetctl export&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lnetctl net show&amp;lt;/code&amp;gt;. The &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; sub-command syntax is&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;lnetctl export [{file}]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;lnetctl export [{file}]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For example:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre style=&quot;overflow-x:auto;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lnetctl export /etc/lnet.conf&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l160&quot;&gt;Line 160:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 166:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The output for the &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; command is the same as for &amp;lt;code&amp;gt;lnetctl net show --&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;verbose&lt;/del&gt;&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The output for the &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; command is the same as &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the output of &amp;lt;code&amp;gt;lnetctl net show --verbose&amp;lt;/code&amp;gt;. The output also contains a lot of additional information that may not be required, such as the loopback device configuration. Because the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; NID is always created by the LNet module, regardless of the supplied configuration, it is not needed in the exported file output. Unfortunately, there is not an easy way to exclude interfaces from the exported configuration and the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; NID has to be removed by hand. In addition, the &amp;lt;code&amp;gt;lnetctl export&amp;lt;/code&amp;gt; output includes some statistical data that is not relevant to describing a configuration, and some advanced options that may not be required &lt;/ins&gt;for &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;many installs.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For a simpler configuration, use the &amp;lt;code&amp;gt;lnetctl net show&lt;/ins&gt;&amp;lt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/&lt;/ins&gt;code&amp;gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;command:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;lnetctl net show &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[&lt;/ins&gt;--&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;net &amp;lt;lnet&amp;gt;] [&amp;gt; {file}]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;For example, to capture the configuration of LNet &amp;lt;code&amp;gt;tcp0&amp;lt;/code&amp;gt;:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lnetctl net show --net tcp0 &amp;gt; /etc/lnet.conf&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The file will not contain any tuning parameters, but for many, the defaults will be sufficient.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;In systems that support &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt;, there is an LNet service definition, &amp;lt;code&amp;gt;lnet.service&amp;lt;/code&amp;gt;, that can be enabled to load the LNet configuration on system boot. This is of most use to LNet routers, but can be enabled on any host. The &amp;lt;code&amp;gt;lnet&amp;lt;/code&amp;gt; service will read the configuration from &amp;lt;code&amp;gt;/etc/lnet.conf&lt;/ins&gt;&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; output is formatted in YAML (Yet Another Markup Language), a relatively simple data structure syntax that is intended to be portable and has the benefit of being straightforward to interpret. Libraries for parsing YAML exist for a wide variety of programming languages.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;All &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; output is formatted in YAML (Yet Another Markup Language), a relatively simple data structure syntax that is intended to be portable and has the benefit of being straightforward to interpret. Libraries for parsing YAML exist for a wide variety of programming languages.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l270&quot;&gt;Line 270:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 292:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mar  7 04:06:38 rh7z-pe kernel: LNetError: 2678:0:(api-ni.c:1252:lnet_startup_lndni()) Net tcp1 is not unique&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mar  7 04:06:38 rh7z-pe kernel: LNetError: 2678:0:(api-ni.c:1252:lnet_startup_lndni()) Net tcp1 is not unique&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Note that &amp;lt;code&gt;lnetctl export&amp;lt;/code&gt; will include the &amp;lt;code&gt;loopback&amp;lt;/code&gt; interface in the output that it generates. Because the &amp;lt;code&gt;loopback&amp;lt;/code&gt; NID is always created by the LNet module, regardless of the supplied configuration, it is not needed in the exported file output and LNet will actually generate an error when an attempt is made to import a configuration that contains the &amp;lt;code&gt;loopback&amp;lt;/code&gt; NID. The error will not prevent the rest of the configuration file from being processed, but it does add unneeded noise to the host’s log files and can be disconcerting to users who are not expecting this behavior. Unfortunately, there is not an easy way to exclude interfaces from the exported configuration and the &amp;lt;code&gt;loopback&amp;lt;/code&gt; NID has to be removed by hand.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;import --del&amp;lt;/code&amp;gt; sub-command will attempt to delete any NIDS configured on the host that match the specification described in the YAML configuration file. If the command is successful, then it will not return any output to the shell, but there will be an entry logged to the system console and to syslog.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;lt;code&amp;gt;import --del&amp;lt;/code&amp;gt; sub-command will attempt to delete any NIDS configured on the host that match the specification described in the YAML configuration file. If the command is successful, then it will not return any output to the shell, but there will be an entry logged to the system console and to syslog.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2725:rev-2798 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;diff=2725&amp;oldid=prev</id>
		<title>Malcolm at 05:47, 31 August 2017</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;diff=2725&amp;oldid=prev"/>
		<updated>2017-08-31T05:47:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:47, 30 August 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l331&quot;&gt;Line 331:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 331:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Networking (LNet)]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lustre Networking (LNet)]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Lustre Systems Administration]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wiki_lustre_org:diff::1.12:old-2606:rev-2725 --&gt;
&lt;/table&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
	<entry>
		<id>http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;diff=2606&amp;oldid=prev</id>
		<title>Malcolm: Created page with &quot;Administrators of Lustre file systems will be most familiar with using the &lt;code&gt;modprobe&lt;/code&gt; interface to configure LNet devices (described Static LNet Configuration),...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.lustre.org/index.php?title=Dynamic_LNet_Configuration_and_lnetctl&amp;diff=2606&amp;oldid=prev"/>
		<updated>2017-08-10T03:04:55Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;Administrators of Lustre file systems will be most familiar with using the &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; interface to configure LNet devices (described &lt;a href=&quot;/Static_LNet_Configuration&quot; title=&quot;Static LNet Configuration&quot;&gt;Static LNet Configuration&lt;/a&gt;),...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Administrators of Lustre file systems will be most familiar with using the &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; interface to configure LNet devices (described [[Static LNet Configuration]]), and this is the only mechanism available for LNet configuration in versions of Lustre prior to 2.7.0. In these older release (2.6.0 and earlier), configuring a new LNet or changing the properties of an existing LNet interface means unloading and reloading the kernel module, which effectively incurs a temporary outage on the the node being altered.&lt;br /&gt;
&lt;br /&gt;
However, with the release of Lustre version 2.7.0, there is a new utility, called &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt;, that offers a more flexible and powerful way to manage LNet configuration. With this new utility, LNet can also be updated while the kernel module is still running, a feature referred to as Dynamic LNet Configuration (DLC). Amongst other things, Dynamic LNet means tuning can be applied to an LNet interface on a host without incurring an outage.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; utility can completely replace the older &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; configuration method, but it is not mandatory; administrators can choose the tools that best match their needs. &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; is straightforward to use and helps to guide administrators to a valid, working configuration. The &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; man page has a comprehensive description of the configuration commands and options, as does the Lustre Operations Manual. &lt;br /&gt;
&lt;br /&gt;
Dynamic LNet configuration is powerful and versatile, and provides administrators with easy tools to view and alter the running configuration of LNet on a host.&lt;br /&gt;
&lt;br /&gt;
The LNet modules need to be loaded into the kernel prior to making any configuration changes using &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt;. To load the &amp;lt;code&amp;gt;lnet&amp;lt;/code&amp;gt; modules, use the &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
modprobe [-v] lnet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# modprobe -v lnet&lt;br /&gt;
insmod /lib/modules/3.10.0-327.13.1.el7_lustre.x86_64/extra/kernel/net/lustre/libcfs.ko &lt;br /&gt;
insmod /lib/modules/3.10.0-327.13.1.el7_lustre.x86_64/extra/kernel/net/lustre/lnet.ko &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After the modules are loaded, run the &amp;lt;code&amp;gt;lnet configure&amp;lt;/code&amp;gt; sub-command to initialize the LNet service in the kernel: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl lnet configure [--all]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the &amp;lt;code&amp;gt;--all&amp;lt;/code&amp;gt; flag is used, &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; will try to load any LNet interfaces referenced as either &amp;lt;code&amp;gt;networks&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;ip2nets&amp;lt;/code&amp;gt; options in the &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; configuration files. Otherwise, &amp;lt;code&amp;gt;lnetctl lnet configure&amp;lt;/code&amp;gt; will not attempt to initialize any networks. When using Dynamic LNet Configuration to manage the LNet interface for a host, using the &amp;lt;code&amp;gt;--all&amp;lt;/code&amp;gt; flag is not recommended unless one is migrating from a legacy configuration with complex module options defined.&lt;br /&gt;
&lt;br /&gt;
If there is no other configuration on the server, LNet will have a reference to the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; interface and nothing else. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl net show&lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the LNet kernel module is not loaded, then &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; will report an error when any of the commands are executed:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl lnet configure&lt;br /&gt;
opening /dev/lnet failed: No such device&lt;br /&gt;
hint: the kernel modules may not be loaded&lt;br /&gt;
configure:&lt;br /&gt;
    - lnet:&lt;br /&gt;
          errno: -19&lt;br /&gt;
          descr: &amp;quot;LNet configure error: No such device&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After loading the kernel module and running the &amp;lt;code&amp;gt;lnetctl lnet configure&amp;lt;/code&amp;gt; command, &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; can now be used to create new LNet interfaces on the host. The syntax is explained in the &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; man page, but the basic format follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl net add --net &amp;lt;lnet name&amp;gt; --if &amp;lt;net interface&amp;gt; [&amp;lt;options&amp;gt; …]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here is a simple example that creates a new NID configuration for LNet &amp;lt;code&amp;gt;tcp1&amp;lt;/code&amp;gt; using the TCP/IP sockets LND on &amp;lt;code&amp;gt;eth1&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl net add --net tcp1 --if eth1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This next example creates a new NID for an InfiniBand device using the OFED LND:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl net add --net o2ib0 --if ib0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To delete a NID from the LNet configuration, use the &amp;lt;code&amp;gt;lctl net del&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl net del --net &amp;lt;lnet name&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl net del --net tcp1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To review the currently configured NIDs, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl net show [--verbose]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl net show &lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
    - net: tcp&lt;br /&gt;
      nid: 192.168.207.2@tcp&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When invoked without any options, the &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; command also provides a command shell for interactive configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl&lt;br /&gt;
lnetctl &amp;gt; help&lt;br /&gt;
&lt;br /&gt;
Available commands are:&lt;br /&gt;
    lnet&lt;br /&gt;
    route&lt;br /&gt;
    net&lt;br /&gt;
    routing&lt;br /&gt;
    set&lt;br /&gt;
    import&lt;br /&gt;
    export&lt;br /&gt;
    stats&lt;br /&gt;
    peer_credits&lt;br /&gt;
    help&lt;br /&gt;
    exit&lt;br /&gt;
    quit&lt;br /&gt;
For more help type: help command-name&lt;br /&gt;
lnetctl &amp;gt; net&lt;br /&gt;
net {add | del | show | help}&lt;br /&gt;
lnetctl &amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Configuration applied by &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; will be lost when the &amp;lt;code&amp;gt;lnet&amp;lt;/code&amp;gt; kernel module is unloaded or the host is rebooted. To preserve the configuration, it can be exported to a file so that it can be re-imported when the host is restarted.&lt;br /&gt;
&lt;br /&gt;
To save an LNet configuration, use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl export [{file}]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If a file is not specified, the configuration is directed to &amp;lt;code&amp;gt;&amp;lt;stdout&amp;gt;&amp;lt;/code&amp;gt;. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl export&lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
      tunables:&lt;br /&gt;
          peer_timeout: 0&lt;br /&gt;
          peer_credits: 0&lt;br /&gt;
          peer_buffer_credits: 0&lt;br /&gt;
          credits: 0&lt;br /&gt;
    - net: tcp1&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
      tunables:&lt;br /&gt;
          peer_timeout: 180&lt;br /&gt;
          peer_credits: 8&lt;br /&gt;
          peer_buffer_credits: 0&lt;br /&gt;
          credits: 256&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The output for the &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; command is the same as for &amp;lt;code&amp;gt;lnetctl net show --verbose&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
All &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; output is formatted in YAML (Yet Another Markup Language), a relatively simple data structure syntax that is intended to be portable and has the benefit of being straightforward to interpret. Libraries for parsing YAML exist for a wide variety of programming languages.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt; command is a great way to migrate hosts that have been using the kernel module options files via &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; to use Dynamic LNet configuration. If a host has a running configuration that was provided using kernel module options, it can be exported using &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; into the YAML syntax. &lt;br /&gt;
&lt;br /&gt;
There is, of course, a corresponding &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; command for &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl import [--add|--del|--show] {file}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The file used as input must be formatted in YAML. The import command will also parse YAML input from &amp;lt;code&amp;gt;&amp;lt;stdin&amp;gt;&amp;lt;/code&amp;gt;. The following example shows a simple configuration in YAML syntax:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
net:&lt;br /&gt;
    - net: tcp1&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This YAML configuration is equivalent to the following, expressed as a &amp;lt;code&amp;gt;modprobe&amp;lt;/code&amp;gt; option:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
options lnet networks=&amp;quot;tcp1(eth1)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When a configuration is exported by &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt;, it will also include host-specific information such as the NID, interface status and tunables. However, the basic configuration need only describe the LNet (e.g. &amp;lt;code&amp;gt;tcp1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;o2ib0&amp;lt;/code&amp;gt;) and the interfaces, as above.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; To provide an effective and simple means to audit a host’s LNet configuration, consider using the &amp;lt;code&amp;gt;lnetctl --add&amp;lt;/code&amp;gt; command to create the LNet configuration for the first time, then use &amp;lt;code&amp;gt;lnetctl export&amp;lt;/code&amp;gt; to capture a persistent record. In that way, one can create a tailored audit per host to verify that the recorded and running configurations match.&lt;br /&gt;
&lt;br /&gt;
The default behavior of the &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; command is to add the interfaces described in the configuration file. The following two commands are therefore equivalent:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
lnetctl import --add {file}&lt;br /&gt;
lnetctl import {file}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following transcript shows an example of how the &amp;lt;code&amp;gt;lnetctl import --add&amp;lt;/code&amp;gt; command works:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# modprobe lnet # load the lnet kernel module&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl lnet configure # start the lnet service&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl net show&lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
[root@rh7z-pe ~]# cat lnet.cf &lt;br /&gt;
net:&lt;br /&gt;
    - net: tcp1&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
      tunables:&lt;br /&gt;
          peer_timeout: 180&lt;br /&gt;
          peer_credits: 8&lt;br /&gt;
          peer_buffer_credits: 0&lt;br /&gt;
          credits: 256&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import --add lnet.cf &lt;br /&gt;
[root@rh7z-pe ~]# lnetctl net show&lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
    - net: tcp1&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If an LNet NID is already configured, then &amp;lt;code&amp;gt;lnetctl import [--add]&amp;lt;/code&amp;gt; will return an error. For example, the following transcript shows an attempt to import a configuration for &amp;lt;code&amp;gt;tcp1(eth1)&amp;lt;/code&amp;gt; on a host where the NID is already configured:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl net show&lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
    - net: tcp&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
[root@rh7z-pe ~]# cat lnet.cf &lt;br /&gt;
net:&lt;br /&gt;
    - net: tcp&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
      tunables:&lt;br /&gt;
          peer_timeout: 180&lt;br /&gt;
          peer_credits: 8&lt;br /&gt;
          peer_buffer_credits: 0&lt;br /&gt;
          credits: 256&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import lnet.cf &lt;br /&gt;
add:&lt;br /&gt;
    - net:&lt;br /&gt;
          errno: -17&lt;br /&gt;
          descr: &amp;quot;cannot add network: File exists&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel will also report an error to the ring buffer and system console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
Mar  7 04:06:38 rh7z-pe kernel: LNetError: 2678:0:(api-ni.c:1252:lnet_startup_lndni()) Net tcp1 is not unique&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that &amp;lt;code&amp;gt;lnetctl export&amp;lt;/code&amp;gt; will include the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; interface in the output that it generates. Because the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; NID is always created by the LNet module, regardless of the supplied configuration, it is not needed in the exported file output and LNet will actually generate an error when an attempt is made to import a configuration that contains the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; NID. The error will not prevent the rest of the configuration file from being processed, but it does add unneeded noise to the host’s log files and can be disconcerting to users who are not expecting this behavior. Unfortunately, there is not an easy way to exclude interfaces from the exported configuration and the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; NID has to be removed by hand.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;import --del&amp;lt;/code&amp;gt; sub-command will attempt to delete any NIDS configured on the host that match the specification described in the YAML configuration file. If the command is successful, then it will not return any output to the shell, but there will be an entry logged to the system console and to syslog.&lt;br /&gt;
&lt;br /&gt;
For example, if a file called &amp;lt;code&amp;gt;lnet.cf&amp;lt;/code&amp;gt; contained an entry for NID &amp;lt;code&amp;gt;192.168.207.2@tcp1&amp;lt;/code&amp;gt;, then the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import --del lnet.cf &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
...will create an entry in the kernel ring buffer and syslog similar to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
Mar  7 04:46:00 rh7z-pe kernel: LNet: Removed LNI 192.168.207.2@tcp1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Any mismatched entries will generate an error – that is, if there is an entry in the YAML configuration that does not match a configured NID on the host, &amp;lt;code&amp;gt;lnetctl&amp;lt;/code&amp;gt; will return an error for each such entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import --del ln-mismatch.cf &lt;br /&gt;
del:&lt;br /&gt;
    - net:&lt;br /&gt;
          errno: -22&lt;br /&gt;
          descr: &amp;quot;cannot delete network: Invalid argument&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;lnetctl import --show&amp;lt;/code&amp;gt; command is used to identify which of the interfaces defined in the configuration file are actually active LNet NIDs configured on the host. If there are no matching NIDs, &amp;lt;code&amp;gt;lnetctl import --show&amp;lt;/code&amp;gt; will not return any output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x:auto;&amp;quot;&amp;gt;&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl net show&lt;br /&gt;
net:&lt;br /&gt;
    - net: lo&lt;br /&gt;
      nid: 0@lo&lt;br /&gt;
      status: up&lt;br /&gt;
[root@rh7z-pe ~]# cat lnet.cf &lt;br /&gt;
net:&lt;br /&gt;
    - net: tcp1&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
      tunables:&lt;br /&gt;
          peer_timeout: 180&lt;br /&gt;
          peer_credits: 8&lt;br /&gt;
          peer_buffer_credits: 0&lt;br /&gt;
          credits: 256&lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import --show lnet.cf &lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import --add lnet.cf &lt;br /&gt;
[root@rh7z-pe ~]# lnetctl import --show lnet.cf &lt;br /&gt;
net:&lt;br /&gt;
    - net: tcp1&lt;br /&gt;
      nid: 192.168.207.2@tcp1&lt;br /&gt;
      status: up&lt;br /&gt;
      interfaces:&lt;br /&gt;
          0: eth1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the above example, the &amp;lt;code&amp;gt;lnet&amp;lt;/code&amp;gt; kernel module on the host initially has only the &amp;lt;code&amp;gt;loopback&amp;lt;/code&amp;gt; NID configured. When &amp;lt;code&amp;gt;lnetctl import --show&amp;lt;/code&amp;gt; is run for the first time, it does not find a NID on the host that corresponds to the configuration, so it does not return any matches in its output. After the configuration is added to LNet, the second invocation of &amp;lt;code&amp;gt;lnetctl import --show&amp;lt;/code&amp;gt; lists a match. The &amp;lt;code&amp;gt;lnetctl import --show&amp;lt;/code&amp;gt; command is most useful when debugging more complex configurations with the YAML syntax.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lustre Networking (LNet)]]&lt;/div&gt;</summary>
		<author><name>Malcolm</name></author>
	</entry>
</feed>