<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13495">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">ansible: osmo-gsm-tester: Make modem net ifaces persistent<br><br>Currently ofono doesn't catch network interface renaming (takes the name<br>at ofono startup time).<br>If a modem crashes, its net iface is unregistered and registered again,<br>and it can happen that the new name is not the same as before (for<br>instance, wwan8->wwan0 if wwan0 is located on another netns).<br><br>These udev rules allow creating persistent unique names to prevent modem<br>crashes resulting on interface name changing.<br><br>dhcpcd is known to race against udev when managing dev interfaces,<br>bringing them up before udev sometimes, and then udev is unable to<br>rename it. By denying dhcpcd from managing modem ifaces (ww* and r*<br>according to kernel/our rules), we get rid of this issue.<br><br>Related: OS#3881<br>Change-Id: Ic3ef75285aa84f9aa606562cd2f6166de186c1a6<br>---<br>A ansible/roles/gsm-tester/files/70-net-setup-link-modems.rules<br>M ansible/roles/gsm-tester/tasks/main.yml<br>2 files changed, 22 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/95/13495/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/ansible/roles/gsm-tester/files/70-net-setup-link-modems.rules b/ansible/roles/gsm-tester/files/70-net-setup-link-modems.rules</span><br><span>new file mode 100644</span><br><span>index 0000000..a9826e2</span><br><span>--- /dev/null</span><br><span>+++ b/ansible/roles/gsm-tester/files/70-net-setup-link-modems.rules</span><br><span>@@ -0,0 +1,10 @@</span><br><span style="color: hsl(120, 100%, 40%);">+SUBSYSTEM!="net", GOTO="net_setup_link_end"</span><br><span style="color: hsl(120, 100%, 40%);">+ACTION!="add", GOTO="net_setup_link_end"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+IMPORT{builtin}="net_id"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+# If dev paths are too long (too many usb hubs in the path) (>IFNAMSIZ), ID_NET_NAME_PATH is not populated.</span><br><span style="color: hsl(120, 100%, 40%);">+ENV{DEVTYPE}=="wwan", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"</span><br><span style="color: hsl(120, 100%, 40%);">+ENV{DEVTYPE}=="wwan", ENV{ID_NET_NAME_PATH}=="", PROGRAM="/bin/sh -ec 'echo ${DEVPATH} | sha1sum | head -c14'", NAME="r$result"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+LABEL="net_setup_link_end"</span><br><span>diff --git a/ansible/roles/gsm-tester/tasks/main.yml b/ansible/roles/gsm-tester/tasks/main.yml</span><br><span>index 8a854bd..c9b7429 100644</span><br><span>--- a/ansible/roles/gsm-tester/tasks/main.yml</span><br><span>+++ b/ansible/roles/gsm-tester/tasks/main.yml</span><br><span>@@ -274,3 +274,15 @@</span><br><span>     src: 64-limesuite.rules</span><br><span>     dest: /etc/udev/rules.d/</span><br><span>   notify: restart udev</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- name: use persistent naming for modem network interfaces</span><br><span style="color: hsl(120, 100%, 40%);">+  copy:</span><br><span style="color: hsl(120, 100%, 40%);">+    src: 70-net-setup-link-modems.rules</span><br><span style="color: hsl(120, 100%, 40%);">+    dest: /etc/udev/rules.d/</span><br><span style="color: hsl(120, 100%, 40%);">+  notify: restart udev</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+- name: avoid dhcpcd managing modem interfaces and racing with udev rename</span><br><span style="color: hsl(120, 100%, 40%);">+  lineinfile:</span><br><span style="color: hsl(120, 100%, 40%);">+    path: /etc/dhcpcd.conf</span><br><span style="color: hsl(120, 100%, 40%);">+    regexp: '^denyinterfaces'</span><br><span style="color: hsl(120, 100%, 40%);">+    line: 'denyinterfaces ww* r*'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13495">change 13495</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13495"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ci </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ic3ef75285aa84f9aa606562cd2f6166de186c1a6 </div>
<div style="display:none"> Gerrit-Change-Number: 13495 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>