Codebase list network-manager / 14b0f3a
New upstream version 1.42.8 Michael Biebl 10 months ago
103 changed file(s) with 2140 addition(s) and 818 deletion(s). Raw diff Collapse all Expand all
32843284 -I$(builddir)/src \
32853285 -I$(builddir)/src/libnm-core-public \
32863286 -I$(srcdir)/src/libnm-core-public \
3287 $(GLIB_CFLAGS)
3287 $(GLIB_CFLAGS) \
3288 $(PPPD_CFLAGS) \
3289 $(NULL)
32883290
32893291 src_core_ppp_nm_pppd_plugin_la_SOURCES = \
3292 src/core/ppp/nm-pppd-compat.c \
3293 src/core/ppp/nm-pppd-compat.h \
32903294 src/core/ppp/nm-pppd-plugin.c \
32913295 src/core/ppp/nm-pppd-plugin.h \
32923296 src/core/ppp/nm-ppp-status.h
33253329 $(NULL)
33263330
33273331 $(src_core_ppp_libnm_ppp_plugin_la_OBJECTS): $(src_libnm_core_public_mkenums_h)
3332
3333 check-local-ppp-plugin: src/core/NetworkManager src/core/ppp/libnm-ppp-plugin.la
3334 $(srcdir)/tools/check-exports.sh $(builddir)/src/core/ppp/.libs/libnm-ppp-plugin.so "$(srcdir)/src/core/ppp/nm-ppp-plugin.ver"
3335 $(call check_so_symbols,$(builddir)/src/core/ppp/.libs/libnm-ppp-plugin.so)
3336
3337 check_local += check-local-ppp-plugin
33283338
33293339 endif
33303340
35603570 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \
35613571 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \
35623572 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \
3563 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \
3573 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband0 \
3574 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 \
3575 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 \
35643576 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected \
35653577 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ipoib \
35663578 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-link_local \
194194 ###############################################################################
195195 @WITH_PPP_TRUE@am__append_21 = src/core/ppp/libnm-ppp-plugin.la
196196 @WITH_PPP_TRUE@am__append_22 = src/core/ppp/nm-pppd-plugin.la
197 @WITH_PPP_TRUE@am__append_23 = check-local-ppp-plugin
197198
198199 ###############################################################################
199200 # src/core/settings/plugins/ifcfg-rh
200201 ###############################################################################
201 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_23 = src/core/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
202 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_24 = \
202 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_24 = src/core/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
203 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_25 = \
203204 @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la \
204205 @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la
205206
206 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_25 = $(nodist_src_core_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES)
207 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_26 = check-local-symbols-settings-ifcfg-rh
207 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_26 = $(nodist_src_core_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES)
208 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_27 = check-local-symbols-settings-ifcfg-rh
208209
209210 ###############################################################################
210211 # src/core/settings/plugins/ifcfg-rh/tests
211212 ###############################################################################
212 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_27 = src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh
213 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_28 = \
213 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_28 = src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh
214 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_29 = \
214215 @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/nm-ifup \
215216 @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/nm-ifdown
216217
217 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_29 = install-data-hook-ifcfg-rh
218 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_30 = install-data-hook-ifcfg-rh
218219
219220 ###############################################################################
220 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_30 = src/core/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf
221 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_31 = src/core/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf
221222
222223 ###############################################################################
223224 # src/core/settings/plugins/ifupdown
224225 ###############################################################################
225 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_31 = src/core/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la
226 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_32 = src/core/settings/plugins/ifupdown/libnms-ifupdown-core.la
227 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_33 = check-local-symbols-settings-ifupdown
226 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_32 = src/core/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la
227 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_33 = src/core/settings/plugins/ifupdown/libnms-ifupdown-core.la
228 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_34 = check-local-symbols-settings-ifupdown
228229
229230 ###############################################################################
230 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_34 = src/core/settings/plugins/ifupdown/tests/test-ifupdown
231 @CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_35 = src/core/settings/plugins/ifupdown/tests/test-ifupdown
231232
232233 ###############################################################################
233 @WITH_MODEM_MANAGER_1_TRUE@am__append_35 = src/core/devices/wwan/libnm-wwan.la \
234 @WITH_MODEM_MANAGER_1_TRUE@am__append_36 = src/core/devices/wwan/libnm-wwan.la \
234235 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/libnm-device-plugin-wwan.la \
235236 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/libnm-device-plugin-bluetooth.la
236 @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__append_36 = \
237 @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__append_37 = \
237238 @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@ src/core/devices/wwan/nm-modem-ofono.c \
238239 @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@ src/core/devices/wwan/nm-modem-ofono.h
239240
240 @WITH_MODEM_MANAGER_1_TRUE@am__append_37 = check-local-devices-wwan \
241 @WITH_MODEM_MANAGER_1_TRUE@am__append_38 = check-local-devices-wwan \
241242 @WITH_MODEM_MANAGER_1_TRUE@ check-local-devices-bluetooth
242 @WITH_MODEM_MANAGER_1_TRUE@am__append_38 = src/core/devices/wwan/tests/test-service-providers
243 @WITH_MODEM_MANAGER_1_TRUE@am__append_39 = src/core/devices/wwan/tests/test-service-providers
243244
244245 ###############################################################################
245246 # src/core/devices/bluetooth
246247 ###############################################################################
247 @WITH_MODEM_MANAGER_1_TRUE@am__append_39 = src/core/devices/bluetooth/libnm-bluetooth-utils.la
248 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_40 = \
248 @WITH_MODEM_MANAGER_1_TRUE@am__append_40 = src/core/devices/bluetooth/libnm-bluetooth-utils.la
249 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_41 = \
249250 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez5-dun.c \
250251 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez5-dun.h \
251252 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ $(NULL)
252253
253 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_41 = $(BLUEZ5_CFLAGS)
254 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_42 = $(BLUEZ5_LIBS)
254 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_42 = $(BLUEZ5_CFLAGS)
255 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_43 = $(BLUEZ5_LIBS)
255256
256257 ###############################################################################
257 @WITH_MODEM_MANAGER_1_TRUE@am__append_43 = \
258 @WITH_MODEM_MANAGER_1_TRUE@am__append_44 = \
258259 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/tests/nm-bt-test
259260
260261
261262 ###############################################################################
262263 # src/core/devices/wifi
263264 ###############################################################################
264 @WITH_WIFI_TRUE@am__append_44 = src/core/devices/wifi/libnm-wifi-base.la
265 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_45 = \
265 @WITH_WIFI_TRUE@am__append_45 = src/core/devices/wifi/libnm-wifi-base.la
266 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_46 = \
266267 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-device-iwd.c \
267268 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-device-iwd.h \
268269 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-device-iwd-p2p.c \
271272 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-iwd-manager.h \
272273 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ $(NULL)
273274
274 @WITH_WIFI_TRUE@am__append_46 = src/core/devices/wifi/libnm-device-plugin-wifi.la
275 @WITH_WIFI_TRUE@am__append_47 = check-local-devices-wifi
276 @WITH_WIFI_TRUE@am__append_48 = src/core/devices/wifi/tests/test-devices-wifi
275 @WITH_WIFI_TRUE@am__append_47 = src/core/devices/wifi/libnm-device-plugin-wifi.la
276 @WITH_WIFI_TRUE@am__append_48 = check-local-devices-wifi
277 @WITH_WIFI_TRUE@am__append_49 = src/core/devices/wifi/tests/test-devices-wifi
277278
278279 ###############################################################################
279280 # src/core/devices/team
280281 ###############################################################################
281 @WITH_TEAMDCTL_TRUE@am__append_49 = src/core/devices/team/libnm-device-plugin-team.la
282 @WITH_TEAMDCTL_TRUE@am__append_50 = check-local-devices-team
283 @WITH_OPENVSWITCH_TRUE@am__append_51 = src/core/devices/ovs/libnm-device-plugin-ovs.la
284 @WITH_OPENVSWITCH_TRUE@am__append_52 = check-local-devices-ovs
285 @BUILD_DOCS_TRUE@am__append_53 = check-local-settings-docs
282 @WITH_TEAMDCTL_TRUE@am__append_50 = src/core/devices/team/libnm-device-plugin-team.la
283 @WITH_TEAMDCTL_TRUE@am__append_51 = check-local-devices-team
284 @WITH_OPENVSWITCH_TRUE@am__append_52 = src/core/devices/ovs/libnm-device-plugin-ovs.la
285 @WITH_OPENVSWITCH_TRUE@am__append_53 = check-local-devices-ovs
286 @BUILD_DOCS_TRUE@am__append_54 = check-local-settings-docs
286287
287288 ###############################################################################
288289 # src/nmcli
289290 ###############################################################################
290 @BUILD_NMCLI_TRUE@am__append_54 = src/nmcli/nmcli
291 @BUILD_NMCLI_TRUE@am__append_55 = install-data-hook-nmcli
292 @BUILD_NMCLI_TRUE@am__append_56 = uninstall-hook-nmcli
291 @BUILD_NMCLI_TRUE@am__append_55 = src/nmcli/nmcli
292 @BUILD_NMCLI_TRUE@am__append_56 = install-data-hook-nmcli
293 @BUILD_NMCLI_TRUE@am__append_57 = uninstall-hook-nmcli
293294
294295 ###############################################################################
295296 # src/libnmt-newt
296297 ###############################################################################
297 @BUILD_NMTUI_TRUE@am__append_57 = src/libnmt-newt/libnmt-newt.a
298 @BUILD_NMTUI_TRUE@am__append_58 = src/libnmt-newt/libnmt-newt.a
298299
299300 ###############################################################################
300301 # src/nmtui
301302 ###############################################################################
302 @BUILD_NMTUI_TRUE@am__append_58 = src/nmtui/nmtui
303 @BUILD_NMTUI_TRUE@am__append_59 = install-exec-hook-nmtui
304 @BUILD_NMTUI_TRUE@am__append_60 = uninstall-hook-nmtui
303 @BUILD_NMTUI_TRUE@am__append_59 = src/nmtui/nmtui
304 @BUILD_NMTUI_TRUE@am__append_60 = install-exec-hook-nmtui
305 @BUILD_NMTUI_TRUE@am__append_61 = uninstall-hook-nmtui
305306
306307 ###############################################################################
307308 # src/nm-cloud-setup
308309 ###############################################################################
309 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_61 = src/nm-cloud-setup/libnm-cloud-setup-core.a
310 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_62 = src/nm-cloud-setup/nm-cloud-setup
311 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_63 = \
310 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_62 = src/nm-cloud-setup/libnm-cloud-setup-core.a
311 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_63 = src/nm-cloud-setup/nm-cloud-setup
312 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_64 = \
312313 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ src/nm-cloud-setup/nm-cloud-setup.service \
313314 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ src/nm-cloud-setup/nm-cloud-setup.timer \
314315 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ $(NULL)
315316
316 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_64 = install-data-hook-cloud-setup
317 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_65 = uninstall-hook-cloud-setup
318 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_66 = \
317 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_65 = install-data-hook-cloud-setup
318 @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@am__append_66 = uninstall-hook-cloud-setup
319 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_67 = \
319320 @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/90-nm-cloud-setup.sh \
320321 @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/meson.build \
321322 @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/nm-cloud-setup.service.in \
323324 @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/tests/meson.build \
324325 @BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL)
325326
326 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_67 = \
327 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_68 = \
327328 @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/nm-cloud-setup.service
328329
329 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_68 = src/nm-cloud-setup/tests/test-cloud-setup-general
330 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_69 = src/nm-cloud-setup/tests/test-cloud-setup-general
330331
331332 ###############################################################################
332333 # data
333334 ###############################################################################
334 @HAVE_SYSTEMD_TRUE@am__append_69 = \
335 @HAVE_SYSTEMD_TRUE@am__append_70 = \
335336 @HAVE_SYSTEMD_TRUE@ data/NetworkManager.service \
336337 @HAVE_SYSTEMD_TRUE@ data/NetworkManager-wait-online.service \
337338 @HAVE_SYSTEMD_TRUE@ data/NetworkManager-dispatcher.service \
338339 @HAVE_SYSTEMD_TRUE@ data/nm-priv-helper.service \
339340 @HAVE_SYSTEMD_TRUE@ $(NULL)
340341
341 @HAVE_INTROSPECTION_TRUE@am__append_70 = $(man_nm_settings_xml)
342 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_71 = man/nm-settings-ifcfg-rh.5
343 @CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_72 = man/nm-settings-ifcfg-rh.5
342 @HAVE_INTROSPECTION_TRUE@am__append_71 = $(man_nm_settings_xml)
343 @CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_72 = man/nm-settings-ifcfg-rh.5
344344 @CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_73 = man/nm-settings-ifcfg-rh.5
345 @WITH_OPENVSWITCH_TRUE@am__append_74 = man/nm-openvswitch.7
346 @WITH_OPENVSWITCH_FALSE@am__append_75 = man/nm-openvswitch.7
345 @CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_74 = man/nm-settings-ifcfg-rh.5
346 @WITH_OPENVSWITCH_TRUE@am__append_75 = man/nm-openvswitch.7
347347 @WITH_OPENVSWITCH_FALSE@am__append_76 = man/nm-openvswitch.7
348 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_77 = man/nm-cloud-setup.8
349 @BUILD_NM_CLOUD_SETUP_FALSE@am__append_78 = man/nm-cloud-setup.8
348 @WITH_OPENVSWITCH_FALSE@am__append_77 = man/nm-openvswitch.7
349 @BUILD_NM_CLOUD_SETUP_TRUE@am__append_78 = man/nm-cloud-setup.8
350350 @BUILD_NM_CLOUD_SETUP_FALSE@am__append_79 = man/nm-cloud-setup.8
351 @HAVE_DOCS_TRUE@am__append_80 = install-data-hook-man
352 @HAVE_DOCS_TRUE@am__append_81 = uninstall-hook-man
353 @HAVE_DOCS_TRUE@am__append_82 = $(man_pages) $(man_pages_autogen)
354 @BUILD_DOCS_TRUE@am__append_83 = $(man_pages) $(man_pages_autogen)
351 @BUILD_NM_CLOUD_SETUP_FALSE@am__append_80 = man/nm-cloud-setup.8
352 @HAVE_DOCS_TRUE@am__append_81 = install-data-hook-man
353 @HAVE_DOCS_TRUE@am__append_82 = uninstall-hook-man
354 @HAVE_DOCS_TRUE@am__append_83 = $(man_pages) $(man_pages_autogen)
355 @BUILD_DOCS_TRUE@am__append_84 = $(man_pages) $(man_pages_autogen)
355356
356357 ###############################################################################
357358 # vapi
358359 ###############################################################################
359 @ENABLE_VAPIGEN_TRUE@am__append_84 = \
360 @ENABLE_VAPIGEN_TRUE@am__append_85 = \
360361 @ENABLE_VAPIGEN_TRUE@ vapi/libnm.vapi
361362
362 @ENABLE_VAPIGEN_TRUE@am__append_85 = \
363 @ENABLE_VAPIGEN_TRUE@am__append_86 = \
363364 @ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS) \
364365 @ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS:.vapi=.deps)
365366
366 @ENABLE_VAPIGEN_TRUE@am__append_86 = $(VAPIGEN_VAPIS)
367 @ENABLE_VAPIGEN_TRUE@am__append_87 = $(VAPIGEN_VAPIS)
367368
368369 ###############################################################################
369 @ENABLE_TESTS_TRUE@am__append_87 = $(check_programs) $(check_programs_norun)
370 @ENABLE_TESTS_TRUE@am__append_88 = $(check_ltlibraries)
371 @ENABLE_TESTS_FALSE@am__append_89 = $(check_programs) $(check_programs_norun)
372 @ENABLE_TESTS_FALSE@am__append_90 = $(check_ltlibraries)
373 @WITH_QT_TRUE@am__append_91 = \
370 @ENABLE_TESTS_TRUE@am__append_88 = $(check_programs) $(check_programs_norun)
371 @ENABLE_TESTS_TRUE@am__append_89 = $(check_ltlibraries)
372 @ENABLE_TESTS_FALSE@am__append_90 = $(check_programs) $(check_programs_norun)
373 @ENABLE_TESTS_FALSE@am__append_91 = $(check_ltlibraries)
374 @WITH_QT_TRUE@am__append_92 = \
374375 @WITH_QT_TRUE@ examples/C/qt/add-connection-wired \
375376 @WITH_QT_TRUE@ examples/C/qt/list-connections \
376377 @WITH_QT_TRUE@ examples/C/qt/change-ipv4-addresses \
377378 @WITH_QT_TRUE@ examples/C/qt/monitor-nm-running
378379
379 @WITH_QT_TRUE@am__append_92 = \
380 @WITH_QT_TRUE@am__append_93 = \
380381 @WITH_QT_TRUE@ examples/C/qt/monitor-nm-running.moc
381382
382383 subdir = .
10611062 @WITH_PPP_TRUE@src_core_ppp_nm_pppd_plugin_la_DEPENDENCIES = \
10621063 @WITH_PPP_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
10631064 am__src_core_ppp_nm_pppd_plugin_la_SOURCES_DIST = \
1065 src/core/ppp/nm-pppd-compat.c src/core/ppp/nm-pppd-compat.h \
10641066 src/core/ppp/nm-pppd-plugin.c src/core/ppp/nm-pppd-plugin.h \
10651067 src/core/ppp/nm-ppp-status.h
1066 @WITH_PPP_TRUE@am_src_core_ppp_nm_pppd_plugin_la_OBJECTS = src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo
1068 @WITH_PPP_TRUE@am_src_core_ppp_nm_pppd_plugin_la_OBJECTS = src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo \
1069 @WITH_PPP_TRUE@ src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo
10671070 src_core_ppp_nm_pppd_plugin_la_OBJECTS = \
10681071 $(am_src_core_ppp_nm_pppd_plugin_la_OBJECTS)
10691072 src_core_ppp_nm_pppd_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
29322935 src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo \
29332936 src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo \
29342937 src/core/ppp/$(DEPDIR)/libnm_ppp_plugin_la-nm-ppp-manager.Plo \
2938 src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Plo \
29352939 src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo \
29362940 src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo \
29372941 src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo \
40974101 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
40984102 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
40994103 POSUB = @POSUB@
4104 PPPD_CFLAGS = @PPPD_CFLAGS@
41004105 PPPD_PATH = @PPPD_PATH@
41014106 PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
41024107 PTHREAD_CC = @PTHREAD_CC@
42914296 src/core/libNetworkManager.la \
42924297 src/libnm-systemd-core/libnm-systemd-core.la $(NULL) \
42934298 src/libnm-systemd-shared/libnm-systemd-shared.la \
4294 src/nm-initrd-generator/libnmi-core.la $(am__append_24) \
4295 $(am__append_32) $(am__append_39) $(am__append_44) \
4296 src/nm-dispatcher/libnm-dispatcher-core.la $(am__append_88)
4297 check_LTLIBRARIES = $(am__append_90)
4298 noinst_LIBRARIES = $(am__append_57) $(am__append_61)
4299 src/nm-initrd-generator/libnmi-core.la $(am__append_25) \
4300 $(am__append_33) $(am__append_40) $(am__append_45) \
4301 src/nm-dispatcher/libnm-dispatcher-core.la $(am__append_89)
4302 check_LTLIBRARIES = $(am__append_91)
4303 noinst_LIBRARIES = $(am__append_58) $(am__append_62)
42994304 noinst_DATA = $(am__append_12)
4300 dist_libexec_SCRIPTS = $(am__append_28)
4305 dist_libexec_SCRIPTS = $(am__append_29)
43014306
43024307 ###############################################################################
43034308 lib_LTLIBRARIES = src/libnm-client-impl/libnm.la
43064311 ###############################################################################
43074312 # src/core/devices/adsl
43084313 ###############################################################################
4309 core_plugins = $(am__append_21) $(am__append_23) $(am__append_31) \
4314 core_plugins = $(am__append_21) $(am__append_24) $(am__append_32) \
43104315 src/core/devices/adsl/libnm-device-plugin-adsl.la \
4311 $(am__append_35) $(am__append_46) $(am__append_49) \
4312 $(am__append_51)
4316 $(am__append_36) $(am__append_47) $(am__append_50) \
4317 $(am__append_52)
43134318 service_DATA =
4314 man_MANS = $(am__append_82)
4319 man_MANS = $(am__append_83)
43154320 examples_DATA = data/server.conf
43164321 CLEANFILES = $(introspection_sources) $(DBUS_INTERFACE_DOCS) \
4317 src/core/NetworkManager.ver $(am__append_25) \
4322 src/core/NetworkManager.ver $(am__append_26) \
43184323 $(dispatcher_nmdbus_dispatcher_sources) \
43194324 src/nm-dispatcher/org.freedesktop.nm_dispatcher.service \
43204325 src/nm-priv-helper/org.freedesktop.nm_priv_helper.service \
4321 $(am__append_67) src/tests/client/test-client.log \
4326 $(am__append_68) src/tests/client/test-client.log \
43224327 data/NetworkManager-dispatcher.service \
43234328 data/NetworkManager-wait-online.service \
43244329 data/NetworkManager.service data/nm-priv-helper.service \
4325 data/server.conf $(NULL) $(am__append_70) man/common.ent \
4326 $(am__append_83) $(am__append_86) $(GLIB_GENERATED) \
4330 data/server.conf $(NULL) $(am__append_71) man/common.ent \
4331 $(am__append_84) $(am__append_87) $(GLIB_GENERATED) \
43274332 $(INTROSPECTION_GIRS) $(typelib_DATA) cscope.in.out cscope.out \
4328 cscope.po.out $(NULL) $(am__append_92)
4333 cscope.po.out $(NULL) $(am__append_93)
43294334
43304335 ###############################################################################
43314336 DISTCLEANFILES = config-extra.h po/.Makefile.patched \
47354740 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \
47364741 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \
47374742 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ibft \
4738 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband \
4743 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband0 \
4744 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband1 \
4745 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband2 \
47394746 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected \
47404747 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ipoib \
47414748 src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-link_local \
49874994 src/libnmc-setting/meson.build \
49884995 src/libnmc-setting/tests/meson.build \
49894996 src/libnmt-newt/meson.build src/nmtui/meson.build \
4990 $(am__append_66) src/tests/client/test-client.sh \
4997 $(am__append_67) src/tests/client/test-client.sh \
49914998 src/tests/client/test-client.py \
49924999 src/tests/client/test-client.check-on-disk/test_001.expected \
49935000 src/tests/client/test-client.check-on-disk/test_002.expected \
50015008 data/NetworkManager-wait-online.service.in \
50025009 data/NetworkManager.service.in data/nm-priv-helper.service.in \
50035010 data/meson.build data/nm-shared.xml data/server.conf.in \
5004 $(NULL) $(am__append_72) $(am__append_75) $(am__append_78) \
5011 $(NULL) $(am__append_73) $(am__append_76) $(am__append_79) \
50055012 man/common.ent.in $(man_nm_settings_xml) $(addsuffix \
50065013 .xsl,$(basename $(man_nm_settings_xml))) $(man_pages) \
50075014 $(addsuffix .xml,$(basename $(man_pages))) \
50945101 EXTRA_LTLIBRARIES =
50955102 dist_hook = dist-hook-settings-ifcfg-rh-alias-files
50965103 dist_dependencies = src/libnm-core-public/nm-vpn-dbus-types.xml \
5097 src/libnm-core-public/nm-dbus-types.xml $(am__append_73) \
5098 $(am__append_76) $(am__append_79) $(man_pages) \
5104 src/libnm-core-public/nm-dbus-types.xml $(am__append_74) \
5105 $(am__append_77) $(am__append_80) $(man_pages) \
50995106 $(man_pages_autogen)
51005107 dist_configure_check = $(am__append_2)
5101 install_data_hook = install-data-hook-dirs $(am__append_29) \
5102 install-data-hook-dispatcher $(am__append_55) $(am__append_64) \
5103 $(am__append_80)
5104 install_exec_hook = $(am__append_59)
5105 uninstall_hook = $(am__append_56) $(am__append_60) $(am__append_65) \
5108 install_data_hook = install-data-hook-dirs $(am__append_30) \
5109 install-data-hook-dispatcher $(am__append_56) $(am__append_65) \
51065110 $(am__append_81)
5111 install_exec_hook = $(am__append_60)
5112 uninstall_hook = $(am__append_57) $(am__append_61) $(am__append_66) \
5113 $(am__append_82)
51075114 BUILT_SOURCES = src/libnm-core-public/nm-vpn-dbus-types.xml \
51085115 src/libnm-core-public/nm-dbus-types.xml $(gir_DATA) \
51095116 $(typelib_DATA)
51175124 man/NetworkManager-wait-online.service.8 man/NetworkManager.8 \
51185125 man/NetworkManager.conf.5 man/nm-initrd-generator.8 \
51195126 man/nm-online.1 man/nmcli-examples.7 man/nmcli.1 man/nmtui.1 \
5120 $(NULL) $(am__append_74) $(am__append_77)
5127 $(NULL) $(am__append_75) $(am__append_78)
51215128 man_pages_autogen = man/nm-settings-dbus.5 man/nm-settings-keyfile.5 \
5122 man/nm-settings-nmcli.5 $(NULL) $(am__append_71)
5129 man/nm-settings-nmcli.5 $(NULL) $(am__append_72)
51235130
51245131 ###############################################################################
51255132
51675174 src/core/dhcp/tests/test-dhcp-dhclient \
51685175 src/core/dhcp/tests/test-dhcp-utils \
51695176 src/core/settings/plugins/keyfile/tests/test-keyfile-settings \
5170 $(am__append_27) $(am__append_34) $(am__append_38) \
5171 $(am__append_48) src/core/dnsmasq/tests/test-dnsmasq-utils \
5177 $(am__append_28) $(am__append_35) $(am__append_39) \
5178 $(am__append_49) src/core/dnsmasq/tests/test-dnsmasq-utils \
51725179 src/core/platform/tests/test-address-fake \
51735180 src/core/platform/tests/test-address-linux \
51745181 src/core/platform/tests/test-cleanup-fake \
51885195 src/core/tests/test-l3cfg src/core/tests/test-systemd \
51895196 src/core/tests/test-utils src/core/tests/test-wired-defname \
51905197 $(NULL) src/nm-dispatcher/tests/test-dispatcher-envp \
5191 src/libnmc-setting/tests/test-libnmc-setting $(am__append_68)
5192 check_programs_norun = $(am__append_19) $(am__append_43) \
5198 src/libnmc-setting/tests/test-libnmc-setting $(am__append_69)
5199 check_programs_norun = $(am__append_19) $(am__append_44) \
51935200 src/core/platform/tests/monitor \
51945201 src/core/ndisc/tests/test-ndisc-linux \
51955202 examples/C/glib/add-connection-gdbus \
52005207 examples/C/glib/list-connections-libnm \
52015208 examples/C/glib/monitor-nm-running-gdbus \
52025209 examples/C/glib/monitor-nm-state-gdbus \
5203 examples/C/glib/vpn-import-libnm $(NULL) $(am__append_91)
5210 examples/C/glib/vpn-import-libnm $(NULL) $(am__append_92)
52045211
52055212 ###############################################################################
52065213
52145221 src/libnmc-base/libnmc-base.la \
52155222 src/libnmc-setting/libnmc-setting.la
52165223 check_local = check-docs check-local-exports-libnm $(am__append_15) \
5217 $(am__append_18) check-config-options $(am__append_26) \
5218 $(am__append_33) check-local-devices-adsl $(am__append_37) \
5219 $(am__append_47) $(am__append_50) $(am__append_52) \
5220 $(am__append_53) check-local-tests-client \
5224 $(am__append_18) check-config-options $(am__append_23) \
5225 $(am__append_27) $(am__append_34) check-local-devices-adsl \
5226 $(am__append_38) $(am__append_48) $(am__append_51) \
5227 $(am__append_53) $(am__append_54) check-local-tests-client \
52215228 check-local-gitlab-ci check-tree check-po-msgfmt
5222 VAPIGEN_VAPIS = $(am__append_84)
5223 dbusservice_DATA = $(am__append_30) \
5229 VAPIGEN_VAPIS = $(am__append_85)
5230 dbusservice_DATA = $(am__append_31) \
52245231 src/nm-dispatcher/nm-dispatcher.conf \
52255232 src/nm-priv-helper/nm-priv-helper.conf \
52265233 src/core/org.freedesktop.NetworkManager.conf
52275234 dbusactivation_DATA = \
52285235 src/nm-dispatcher/org.freedesktop.nm_dispatcher.service \
52295236 src/nm-priv-helper/org.freedesktop.nm_priv_helper.service
5230 systemdsystemunit_DATA = $(am__append_63) $(am__append_69)
5237 systemdsystemunit_DATA = $(am__append_64) $(am__append_70)
52315238 INTROSPECTION_GIRS = $(am__append_11)
52325239 INTROSPECTION_SCANNER_ARGS =
52335240 INTROSPECTION_COMPILER_ARGS =
52445251 pppd_plugindir = $(PPPD_PLUGIN_DIR)
52455252 pppd_plugin_LTLIBRARIES = $(am__append_22)
52465253 vapidir = $(datadir)/vala/vapi
5247 vapi_DATA = $(am__append_85)
5254 vapi_DATA = $(am__append_86)
52485255 examplesdir = $(docdir)/examples
52495256 rundir = $(runstatedir)/NetworkManager
52505257 statedir = $(localstatedir)/lib/NetworkManager
74897496 @WITH_PPP_TRUE@ -I$(builddir)/src \
74907497 @WITH_PPP_TRUE@ -I$(builddir)/src/libnm-core-public \
74917498 @WITH_PPP_TRUE@ -I$(srcdir)/src/libnm-core-public \
7492 @WITH_PPP_TRUE@ $(GLIB_CFLAGS)
7499 @WITH_PPP_TRUE@ $(GLIB_CFLAGS) \
7500 @WITH_PPP_TRUE@ $(PPPD_CFLAGS) \
7501 @WITH_PPP_TRUE@ $(NULL)
74937502
74947503 @WITH_PPP_TRUE@src_core_ppp_nm_pppd_plugin_la_SOURCES = \
7504 @WITH_PPP_TRUE@ src/core/ppp/nm-pppd-compat.c \
7505 @WITH_PPP_TRUE@ src/core/ppp/nm-pppd-compat.h \
74957506 @WITH_PPP_TRUE@ src/core/ppp/nm-pppd-plugin.c \
74967507 @WITH_PPP_TRUE@ src/core/ppp/nm-pppd-plugin.h \
74977508 @WITH_PPP_TRUE@ src/core/ppp/nm-ppp-status.h
76777688 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/nm-modem.h \
76787689 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/nm-service-providers.c \
76797690 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/nm-service-providers.h \
7680 @WITH_MODEM_MANAGER_1_TRUE@ $(NULL) $(am__append_36)
7691 @WITH_MODEM_MANAGER_1_TRUE@ $(NULL) $(am__append_37)
76817692 @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_wwan_libnm_wwan_la_CPPFLAGS = $(src_core_devices_wwan_cppflags)
76827693 @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_wwan_libnm_wwan_la_LDFLAGS = \
76837694 @WITH_MODEM_MANAGER_1_TRUE@ -avoid-version \
77287739 @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES = src/core/devices/bluetooth/nm-bluez-common.h \
77297740 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bt-error.c \
77307741 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bt-error.h \
7731 @WITH_MODEM_MANAGER_1_TRUE@ $(NULL) $(am__append_40)
7742 @WITH_MODEM_MANAGER_1_TRUE@ $(NULL) $(am__append_41)
77327743 @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS = \
77337744 @WITH_MODEM_MANAGER_1_TRUE@ $(src_core_cppflags_base) $(NULL) \
7734 @WITH_MODEM_MANAGER_1_TRUE@ $(am__append_41)
7745 @WITH_MODEM_MANAGER_1_TRUE@ $(am__append_42)
77357746 @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_bluetooth_utils_la_LIBADD = \
77367747 @WITH_MODEM_MANAGER_1_TRUE@ $(GLIB_LIBS) $(NULL) \
7737 @WITH_MODEM_MANAGER_1_TRUE@ $(am__append_42)
7748 @WITH_MODEM_MANAGER_1_TRUE@ $(am__append_43)
77387749 @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES = \
77397750 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez-manager.c \
77407751 @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez-manager.h \
77827793 @WITH_WIFI_TRUE@ src/core/devices/wifi/nm-wifi-p2p-peer.h \
77837794 @WITH_WIFI_TRUE@ src/core/devices/wifi/nm-wifi-utils.c \
77847795 @WITH_WIFI_TRUE@ src/core/devices/wifi/nm-wifi-utils.h $(NULL) \
7785 @WITH_WIFI_TRUE@ $(am__append_45)
7796 @WITH_WIFI_TRUE@ $(am__append_46)
77867797 @WITH_WIFI_TRUE@src_core_devices_wifi_libnm_wifi_base_la_CPPFLAGS = $(src_core_cppflags_device_plugin)
77877798 @WITH_WIFI_TRUE@src_core_devices_wifi_libnm_wifi_base_la_LIBADD = \
77887799 @WITH_WIFI_TRUE@ $(GLIB_LIBS)
98949905
98959906 src/core/ppp/libnm-ppp-plugin.la: $(src_core_ppp_libnm_ppp_plugin_la_OBJECTS) $(src_core_ppp_libnm_ppp_plugin_la_DEPENDENCIES) $(EXTRA_src_core_ppp_libnm_ppp_plugin_la_DEPENDENCIES) src/core/ppp/$(am__dirstamp)
98969907 $(AM_V_CCLD)$(src_core_ppp_libnm_ppp_plugin_la_LINK) $(am_src_core_ppp_libnm_ppp_plugin_la_rpath) $(src_core_ppp_libnm_ppp_plugin_la_OBJECTS) $(src_core_ppp_libnm_ppp_plugin_la_LIBADD) $(LIBS)
9908 src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo: \
9909 src/core/ppp/$(am__dirstamp) \
9910 src/core/ppp/$(DEPDIR)/$(am__dirstamp)
98979911 src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo: \
98989912 src/core/ppp/$(am__dirstamp) \
98999913 src/core/ppp/$(DEPDIR)/$(am__dirstamp)
1227512289 @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo@am__quote@ # am--include-marker
1227612290 @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo@am__quote@ # am--include-marker
1227712291 @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/libnm_ppp_plugin_la-nm-ppp-manager.Plo@am__quote@ # am--include-marker
12292 @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Plo@am__quote@ # am--include-marker
1227812293 @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo@am__quote@ # am--include-marker
1227912294 @AMDEP_TRUE@@am__include@ @am__quote@src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo@am__quote@ # am--include-marker
1228012295 @AMDEP_TRUE@@am__include@ @am__quote@src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo@am__quote@ # am--include-marker
1440414419 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
1440514420 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_ppp_libnm_ppp_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/core/ppp/libnm_ppp_plugin_la-nm-ppp-manager.lo `test -f 'src/core/ppp/nm-ppp-manager.c' || echo '$(srcdir)/'`src/core/ppp/nm-ppp-manager.c
1440614421
14422 src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo: src/core/ppp/nm-pppd-compat.c
14423 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_ppp_nm_pppd_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo -MD -MP -MF src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Tpo -c -o src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo `test -f 'src/core/ppp/nm-pppd-compat.c' || echo '$(srcdir)/'`src/core/ppp/nm-pppd-compat.c
14424 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Tpo src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Plo
14425 @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/core/ppp/nm-pppd-compat.c' object='src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo' libtool=yes @AMDEPBACKSLASH@
14426 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
14427 @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_ppp_nm_pppd_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/core/ppp/nm_pppd_plugin_la-nm-pppd-compat.lo `test -f 'src/core/ppp/nm-pppd-compat.c' || echo '$(srcdir)/'`src/core/ppp/nm-pppd-compat.c
14428
1440714429 src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo: src/core/ppp/nm-pppd-plugin.c
1440814430 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_core_ppp_nm_pppd_plugin_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo -MD -MP -MF src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Tpo -c -o src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo `test -f 'src/core/ppp/nm-pppd-plugin.c' || echo '$(srcdir)/'`src/core/ppp/nm-pppd-plugin.c
1440914431 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Tpo src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo
2012920151 -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo
2013020152 -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo
2013120153 -rm -f src/core/ppp/$(DEPDIR)/libnm_ppp_plugin_la-nm-ppp-manager.Plo
20154 -rm -f src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Plo
2013220155 -rm -f src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo
2013320156 -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo
2013420157 -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo
2080720830 -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo
2080820831 -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo
2080920832 -rm -f src/core/ppp/$(DEPDIR)/libnm_ppp_plugin_la-nm-ppp-manager.Plo
20833 -rm -f src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-compat.Plo
2081020834 -rm -f src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo
2081120835 -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo
2081220836 -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo
2160621630
2160721631 @WITH_PPP_TRUE@$(src_core_ppp_libnm_ppp_plugin_la_OBJECTS): $(src_libnm_core_public_mkenums_h)
2160821632
21633 @WITH_PPP_TRUE@check-local-ppp-plugin: src/core/NetworkManager src/core/ppp/libnm-ppp-plugin.la
21634 @WITH_PPP_TRUE@ $(srcdir)/tools/check-exports.sh $(builddir)/src/core/ppp/.libs/libnm-ppp-plugin.so "$(srcdir)/src/core/ppp/nm-ppp-plugin.ver"
21635 @WITH_PPP_TRUE@ $(call check_so_symbols,$(builddir)/src/core/ppp/.libs/libnm-ppp-plugin.so)
21636
2160921637 $(src_core_settings_plugins_keyfile_tests_test_keyfile_settings_OBJECTS): $(src_libnm_core_public_mkenums_h)
2161021638
2161121639 @CONFIG_PLUGIN_IFCFG_RH_TRUE@src/core/settings/plugins/ifcfg-rh/nmdbus-ifcfg-rh.h: src/core/settings/plugins/ifcfg-rh/nm-ifcfg-rh.xml
0 ===============================================
1 NetworkManager-1.42.8
2 Overview of changes since NetworkManager-1.42.6
3 ===============================================
4
5 * Add support for ppp 2.5.0.
6 * Fix nft rules for balance-slb bonding.
7 * Support port priority for bonding.
8 * Fix regression handling the PKEY_ID for infiniband profiles
9 in ifcfg-rh format.
10 * Fix race in nm-cloud-setup that caused partial configuration
11 and loss of connectivity with multiple interfaces.
12 * Don't touch "net.ipv6.conf.$IFACE.forwarding" unless explicitly
13 required for IPv6 sharing.
14 * Various bugfixes related to team, Wi-Fi P2P, IPv6LL.
15 * Automatically unblock autoconnect of profiles during reapply.
16
017 ===============================================
118 NetworkManager-1.42.6
219 Overview of changes since NetworkManager-1.42.4
179196 paragraphs.
180197 * Support enabling ipv4ll alongside DHCPv4 and static addressing.
181198 * Support configuring "ipv6.mtu".
199 * The "ipv6.addr-gen-mode" property can now have a default value
200 specified via global connections defaults in NetworkManager.conf.
182201 * Honor "nm.debug" kernel command line to enable debug logging of
183202 NetworkManager.
184203 * NetworkManager reads the kernel command line "/proc/cmdline" for several
214214
215215 /* Define if more debug logging is enabled */
216216 #undef NM_MORE_LOGGING
217
218 /* The detected ppp API version */
219 #undef NM_PPP_VERSION_2_5_OR_NEWER
217220
218221 /* Name of package */
219222 #undef PACKAGE
238238 /* Define to path of pppd binary */
239239 #mesondefine PPPD_PATH
240240
241 /* The detected ppp API version */
242 #mesondefine NM_PPP_VERSION_2_5_OR_NEWER
243
241244 /* Define if you have iwd support */
242245 #mesondefine WITH_IWD
243246
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.71 for NetworkManager 1.42.6.
2 # Generated by GNU Autoconf 2.71 for NetworkManager 1.42.8.
33 #
44 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>.
55 #
621621 # Identity of this package.
622622 PACKAGE_NAME='NetworkManager'
623623 PACKAGE_TARNAME='NetworkManager'
624 PACKAGE_VERSION='1.42.6'
625 PACKAGE_STRING='NetworkManager 1.42.6'
624 PACKAGE_VERSION='1.42.8'
625 PACKAGE_STRING='NetworkManager 1.42.8'
626626 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager'
627627 PACKAGE_URL=''
628628
771771 PPPD_PLUGIN_DIR
772772 WITH_PPP_FALSE
773773 WITH_PPP_TRUE
774 PPPD_CFLAGS
774775 DBUS_SYS_DIR
775776 GLIB_MKENUMS
776777 GLIB_MAKEFILE
17431744 # Omit some internal or obsolete options to make the list less imposing.
17441745 # This message is too long to be a string in the A/UX 3.1 sh.
17451746 cat <<_ACEOF
1746 \`configure' configures NetworkManager 1.42.6 to adapt to many kinds of systems.
1747 \`configure' configures NetworkManager 1.42.8 to adapt to many kinds of systems.
17471748
17481749 Usage: $0 [OPTION]... [VAR=VALUE]...
17491750
18151816
18161817 if test -n "$ac_init_help"; then
18171818 case $ac_init_help in
1818 short | recursive ) echo "Configuration of NetworkManager 1.42.6:";;
1819 short | recursive ) echo "Configuration of NetworkManager 1.42.8:";;
18191820 esac
18201821 cat <<\_ACEOF
18211822
21702171 test -n "$ac_init_help" && exit $ac_status
21712172 if $ac_init_version; then
21722173 cat <<\_ACEOF
2173 NetworkManager configure 1.42.6
2174 NetworkManager configure 1.42.8
21742175 generated by GNU Autoconf 2.71
21752176
21762177 Copyright (C) 2021 Free Software Foundation, Inc.
28912892 This file contains any messages produced by compilers while
28922893 running configure, to aid debugging if configure makes a mistake.
28932894
2894 It was created by NetworkManager $as_me 1.42.6, which was
2895 It was created by NetworkManager $as_me 1.42.8, which was
28952896 generated by GNU Autoconf 2.71. Invocation command line was
28962897
28972898 $ $0$ac_configure_args_raw
43874388
43884389 # Define the identity of the package.
43894390 PACKAGE='NetworkManager'
4390 VERSION='1.42.6'
4391 VERSION='1.42.8'
43914392
43924393
43934394 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
1932719328
1932819329 NM_MAJOR_VERSION=1
1932919330 NM_MINOR_VERSION=42
19330 NM_MICRO_VERSION=6
19331 NM_VERSION=1.42.6
19332
19333
19334
19335
19336
19337
19338
19339 NM_GIT_SHA=b6cc7c7e695ba3b1f2a5c95b0d6df418b8556e57
19331 NM_MICRO_VERSION=8
19332 NM_VERSION=1.42.8
19333
19334
19335
19336
19337
19338
19339
19340 NM_GIT_SHA=7c6da25396162ba05ffa71f00e227351dc1452b6
1934019341
1934119342 if test """" != "no-config-h" ; then
1934219343
2649626497
2649726498
2649826499 # pppd
26500 NM_PPP_VERSION_2_5_OR_NEWER=0
26501 PPPD_VERSION=2.4.9
26502 if test -n "$PKG_CONFIG" && \
26503 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pppd\""; } >&5
26504 ($PKG_CONFIG --exists --print-errors "pppd") 2>&5
26505 ac_status=$?
26506 printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
26507 test $ac_status = 0; }; then
26508
26509 PPPD_VERSION=`$PKG_CONFIG --modversion pppd`
26510 PPPD_CFLAGS=`$PKG_CONFIG --cflags pppd`
26511 NM_PPP_VERSION_2_5_OR_NEWER=1
26512
26513 fi
26514
2649926515 # Check whether --enable-ppp was given.
2650026516 if test ${enable_ppp+y}
2650126517 then :
2650526521 fi
2650626522
2650726523 if test "${enable_ppp}" = "yes"; then
26508 for ac_header in pppd/pppd.h
26524 if test -z "$PPPD_CFLAGS" ; then
26525 for ac_header in pppd/pppd.h
2650926526 do :
2651026527 ac_fn_c_check_header_compile "$LINENO" "pppd/pppd.h" "ac_cv_header_pppd_pppd_h" "$ac_includes_default"
2651126528 if test "x$ac_cv_header_pppd_pppd_h" = xyes
2651726534 fi
2651826535
2651926536 done
26537 fi
26538 PPPD_CFLAGS="$PPPD_CFLAGS"
2652026539
2652126540
2652226541 printf "%s\n" "#define WITH_PPP 1" >>confdefs.h
2654226561 withval=$with_pppd_plugin_dir;
2654326562 fi
2654426563
26545
2654626564 if test -n "$with_pppd_plugin_dir" ; then
2654726565 PPPD_PLUGIN_DIR="$with_pppd_plugin_dir"
2654826566 else
26549 PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5"
26550 fi
26567 PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION"
26568 fi
26569
26570
26571 printf "%s\n" "#define NM_PPP_VERSION_2_5_OR_NEWER $NM_PPP_VERSION_2_5_OR_NEWER" >>confdefs.h
2655126572
2655226573
2655326574
3279432815 # report actual input values of CONFIG_FILES etc. instead of their
3279532816 # values after options handling.
3279632817 ac_log="
32797 This file was extended by NetworkManager $as_me 1.42.6, which was
32818 This file was extended by NetworkManager $as_me 1.42.8, which was
3279832819 generated by GNU Autoconf 2.71. Invocation command line was
3279932820
3280032821 CONFIG_FILES = $CONFIG_FILES
3286232883 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
3286332884 ac_cs_config='$ac_cs_config_escaped'
3286432885 ac_cs_version="\\
32865 NetworkManager config.status 1.42.6
32886 NetworkManager config.status 1.42.8
3286632887 configured by $0, generated by GNU Autoconf 2.71,
3286732888 with options \\"\$ac_cs_config\\"
3286832889
77 dnl - update number in meson.build
88 m4_define([nm_major_version], [1])
99 m4_define([nm_minor_version], [42])
10 m4_define([nm_micro_version], [6])
10 m4_define([nm_micro_version], [8])
1111 m4_define([nm_version],
1212 [nm_major_version.nm_minor_version.nm_micro_version])
1313
753753 AC_SUBST(DBUS_SYS_DIR)
754754
755755 # pppd
756 NM_PPP_VERSION_2_5_OR_NEWER=0
757 PPPD_VERSION=2.4.9
758 PKG_CHECK_EXISTS([pppd], [
759 PPPD_VERSION=`$PKG_CONFIG --modversion pppd`
760 PPPD_CFLAGS=`$PKG_CONFIG --cflags pppd`
761 NM_PPP_VERSION_2_5_OR_NEWER=1
762 ])
763
756764 AC_ARG_ENABLE(ppp,
757765 AS_HELP_STRING([--enable-ppp], [enable PPP/PPPoE support]),
758766 [enable_ppp=${enableval}], [enable_ppp=yes])
759767 if test "${enable_ppp}" = "yes"; then
760 AC_CHECK_HEADERS(pppd/pppd.h,,
761 AC_MSG_ERROR("couldn't find pppd.h. pppd development headers are required."))
762
768 if test -z "$PPPD_CFLAGS" ; then
769 AC_CHECK_HEADERS(pppd/pppd.h,,
770 AC_MSG_ERROR("couldn't find pppd.h. pppd development headers are required."),)
771 fi
772 AC_SUBST(PPPD_CFLAGS, ["$PPPD_CFLAGS"])
763773 AC_DEFINE(WITH_PPP, 1, [Define if you have PPP support])
764774 else
765775 AC_DEFINE(WITH_PPP, 0, [Define if you have PPP support])
768778
769779 AC_ARG_WITH([pppd-plugin-dir],
770780 AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory]))
771
772781 if test -n "$with_pppd_plugin_dir" ; then
773782 PPPD_PLUGIN_DIR="$with_pppd_plugin_dir"
774783 else
775 PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5"
784 PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION"
776785 fi
777786 AC_SUBST(PPPD_PLUGIN_DIR)
787 AC_DEFINE_UNQUOTED(NM_PPP_VERSION_2_5_OR_NEWER, $NM_PPP_VERSION_2_5_OR_NEWER, [The detected ppp API version])
778788
779789 AC_ARG_WITH(pppd, AS_HELP_STRING([--with-pppd=/path/to/pppd], [path to pppd binary]))
780790 if test "x${with_pppd}" = x; then
325325 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
326326 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
327327 POSUB = @POSUB@
328 PPPD_CFLAGS = @PPPD_CFLAGS@
328329 PPPD_PATH = @PPPD_PATH@
329330 PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
330331 PTHREAD_CC = @PTHREAD_CC@
15641564 <code class="literal">NM_CONFIG_ENABLE_TAG</code>, like:
15651565 </p>
15661566 <pre class="programlisting">
1567 # always skip loading the file when running NetworkManager with
1567 # only load the file when running NetworkManager with
15681568 # environment variable "NM_CONFIG_ENABLE_TAG=TAG1"
15691569 [.config]
15701570 enable=env:TAG1
1515 <div>
1616 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">NetworkManager Reference Manual</p></th></tr></table></div>
1717 <div><p class="releaseinfo">
18 for NetworkManager 1.42.6
18 for NetworkManager 1.42.8
1919
2020 The latest version of this documentation can be found on-line at
2121 <a class="ulink" href="https://networkmanager.dev/docs/api/latest/" target="_top">https://networkmanager.dev/docs/api/latest/</a>.
13421342 </dt>
13431343 <dt id="ientry-id-1.4.8.33.5.5.2">org.freedesktop.NetworkManager.PPP.SetState(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetState">The SetState() method</a>
13441344 </dt>
1345 <dt id="ientry-id-1.3.3.36.2.2.1.1.2.5.1.1.1">prio, <a class="indexterm" href="settings-team-port.html">team-port</a>
1345 <dt id="ientry-id-1.3.3.36.2.2.1.1.2.5.1.1.1">prio, <a class="indexterm" href="settings-team-port.html">team-port</a>, <a class="indexterm" href="settings-bond-port.html">bond-port</a>
13461346 </dt>
13471347 <dt id="ientry-id-1.3.3.8.2.2.1.1.2.22.1.1.1">priority, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>, <a class="indexterm" href="settings-hostname.html">hostname</a>
13481348 </dt>
16081608 <a name="nm-settings-dbus.property.infiniband.p-key"></a>p-key</td>
16091609 <td align="left">int32</td>
16101610 <td align="left">-1</td>
1611 <td>The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.</td>
1611 <td>The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka "the p-key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p-key. The values 0 and 0x8000 are not allowed.
1612
1613 With the p-key set, the interface name is always "$parent.$p_key". Setting "connection.interface-name" to another name is not supported.
1614
1615 Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set.</td>
16121616 </tr>
16131617 <tr>
16141618 <td align="left">
46714675 <th>Default Value</th>
46724676 <th>Value Description</th>
46734677 </tr></thead>
4674 <tbody><tr>
4678 <tbody>
4679 <tr>
4680 <td align="left">
4681 <a name="nm-settings-dbus.property.bond-port.prio"></a>prio</td>
4682 <td align="left">int32</td>
4683 <td align="left">0</td>
4684 <td>The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes.</td>
4685 </tr>
4686 <tr>
46754687 <td align="left">
46764688 <a name="nm-settings-dbus.property.bond-port.queue-id"></a>queue-id</td>
46774689 <td align="left">uint32</td>
46784690 <td align="left">0</td>
46794691 <td>The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.</td>
4680 </tr></tbody>
4692 </tr>
4693 </tbody>
46814694 </table></div>
46824695 </div>
46834696 <hr>
11001100 <th>Default</th>
11011101 <th>Description</th>
11021102 </tr></thead>
1103 <tbody><tr>
1103 <tbody>
1104 <tr>
11041105 <td align="left">queue-id</td>
1105 <td align="left">BONDING_OPTS: queue-id=</td>
1106 <td align="left">BOND_PORT_QUEUE_ID<span class="emphasis"><em>(+)</em></span>
1107 </td>
11061108 <td align="left">0</td>
11071109 <td align="left">Queue ID.<span class="bold"><strong>
11081110
11091111 Allowed values: </strong></span>0 - 65535</td>
1110 </tr></tbody>
1112 </tr>
1113 <tr>
1114 <td align="left">prio</td>
1115 <td align="left">BOND_PORT_PRIO<span class="emphasis"><em>(+)</em></span>
1116 </td>
1117 <td align="left">0</td>
1118 <td align="left">Port priority.<span class="bold"><strong>
1119
1120 Allowed values: </strong></span>-2147483648 - 2147483647</td>
1121 </tr>
1122 </tbody>
11111123 </table></div>
11121124 </div>
11131125 <br class="table-break"><div class="table">
18911903 </tr>
18921904 <tr>
18931905 <td align="left">p-key</td>
1894 <td align="left">PKEY_ID (and PKEY=yes)</td>
1906 <td align="left">PKEY_ID or PKEY_ID_NM(*) (requires PKEY=yes)</td>
18951907 <td align="left">PKEY=no</td>
1896 <td align="left">InfiniBand P_Key. The value can be a hex number prefixed with "0x" or a decimal number. When PKEY_ID is specified, PHYSDEV and DEVICE also must be specified.<span class="bold"><strong>
1908 <td align="left">InfiniBand P_Key. The value can be a hex number prefixed with "0x" or a decimal number. When PKEY_ID is specified, PHYSDEV must be specified. Note that ifcfg-rh format will always automatically set the full membership flag 0x8000 for the PKEY_ID variable. To express IDs without the full membership flag, use PKEY_ID_NM. Note that kernel internally treats the interface as having the full membership flag set, this mainly affects the interface name. For the ifcfg file to be supported by initscripts' ifup-ib, the DEVICE= must always be set. NetworkManager does not require that.<span class="bold"><strong>
18971909
18981910 Example: </strong></span>PKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0.8002</td>
18991911 </tr>
19741974 <td>
19751975 <p>
19761976 Alias: p-key</p>
1977 <p>The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.</p>
1977 <p>The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka "the p-key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p-key. The values 0 and 0x8000 are not allowed.</p>
1978 <p>With the p-key set, the interface name is always "$parent.$p_key". Setting "connection.interface-name" to another name is not supported.</p>
1979 <p>Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set.</p>
19781980 <p>
19791981 Format: int32</p>
19801982 </td>
54845486 <col align="left" valign="top">
54855487 <col>
54865488 </colgroup>
5487 <tbody><tr>
5489 <tbody>
5490 <tr>
5491 <td><p><span class="term"><code class="option"><a name="nm-settings-nmcli.property.bond-port.prio"></a>prio</code></span></p></td>
5492 <td>
5493 <p>
5494 Alias: prio</p>
5495 <p>The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes.</p>
5496 <p>
5497 Format: int32</p>
5498 </td>
5499 </tr>
5500 <tr>
54885501 <td><p><span class="term"><code class="option"><a name="nm-settings-nmcli.property.bond-port.queue-id"></a>queue-id</code></span></p></td>
54895502 <td>
54905503 <p>
54935506 <p>
54945507 Format: uint32</p>
54955508 </td>
5496 </tr></tbody>
5509 </tr>
5510 </tbody>
54975511 </table></div>
54985512 </div>
54995513 <hr>
5151 <th>Default Value</th>
5252 <th>Value Description</th>
5353 </tr></thead>
54 <tbody><tr>
54 <tbody>
55 <tr>
56 <td><pre class="screen">prio</pre></td>
57 <td><pre class="screen">int32</pre></td>
58 <td><pre class="screen">0</pre></td>
59 <td> </td>
60 </tr>
61 <tr>
5562 <td><pre class="screen">queue-id</pre></td>
5663 <td><pre class="screen">uint32</pre></td>
5764 <td><pre class="screen">0</pre></td>
5865 <td> </td>
59 </tr></tbody>
66 </tr>
67 </tbody>
6068 </table></div>
6169 </div>
6270 <p><br class="table-break"></p>
9797 Properties
9898 </title><para><table><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry><screen>channel<indexterm zone="settings-wpan"><primary sortas="channel">channel</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>-1</screen></entry><entry/></row><row><entry><screen>mac-address<indexterm zone="settings-wpan"><primary sortas="mac-address">mac-address</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry/></row><row><entry><screen>page<indexterm zone="settings-wpan"><primary sortas="page">page</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>-1</screen></entry><entry/></row><row><entry><screen>pan-id<indexterm zone="settings-wpan"><primary sortas="pan-id">pan-id</primary></indexterm></screen></entry><entry><screen>uint32</screen></entry><entry><screen>65535</screen></entry><entry/></row><row><entry><screen>short-address<indexterm zone="settings-wpan"><primary sortas="short-address">short-address</primary></indexterm></screen></entry><entry><screen>uint32</screen></entry><entry><screen>65535</screen></entry><entry/></row></tbody></tgroup></table></para></refsect1></refentry><refentry id="settings-bond-port"><refnamediv><refname>bond-port</refname><refpurpose>Bond Port Settings</refpurpose></refnamediv><refsect1 role="properties"><title id="settings-bond-port.properties">
9999 Properties
100 </title><para><table><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry><screen>queue-id<indexterm zone="settings-bond-port"><primary sortas="queue-id">queue-id</primary></indexterm></screen></entry><entry><screen>uint32</screen></entry><entry><screen>0</screen></entry><entry/></row></tbody></tgroup></table></para></refsect1></refentry><refentry id="settings-hostname"><refnamediv><refname>hostname</refname><refpurpose>Hostname settings</refpurpose></refnamediv><refsect1 role="properties"><title id="settings-hostname.properties">
100 </title><para><table><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry><screen>prio<indexterm zone="settings-bond-port"><primary sortas="prio">prio</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>0</screen></entry><entry/></row><row><entry><screen>queue-id<indexterm zone="settings-bond-port"><primary sortas="queue-id">queue-id</primary></indexterm></screen></entry><entry><screen>uint32</screen></entry><entry><screen>0</screen></entry><entry/></row></tbody></tgroup></table></para></refsect1></refentry><refentry id="settings-hostname"><refnamediv><refname>hostname</refname><refpurpose>Hostname settings</refpurpose></refnamediv><refsect1 role="properties"><title id="settings-hostname.properties">
101101 Properties
102102 </title><para><table><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry><screen>from-dhcp<indexterm zone="settings-hostname"><primary sortas="from-dhcp">from-dhcp</primary></indexterm></screen></entry><entry><screen>NMTernary (int32)</screen></entry><entry><screen/></entry><entry/></row><row><entry><screen>from-dns-lookup<indexterm zone="settings-hostname"><primary sortas="from-dns-lookup">from-dns-lookup</primary></indexterm></screen></entry><entry><screen>NMTernary (int32)</screen></entry><entry><screen/></entry><entry/></row><row><entry><screen>only-from-default<indexterm zone="settings-hostname"><primary sortas="only-from-default">only-from-default</primary></indexterm></screen></entry><entry><screen>NMTernary (int32)</screen></entry><entry><screen/></entry><entry/></row><row><entry><screen>priority<indexterm zone="settings-hostname"><primary sortas="priority">priority</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>0</screen></entry><entry/></row></tbody></tgroup></table></para></refsect1></refentry><refentry id="settings-loopback"><refnamediv><refname>loopback</refname><refpurpose>Loopback Link Settings</refpurpose></refnamediv><refsect1 role="properties"><title id="settings-loopback.properties">
103103 Properties
0 1.42.6
0 1.42.8
322322 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
323323 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
324324 POSUB = @POSUB@
325 PPPD_CFLAGS = @PPPD_CFLAGS@
325326 PPPD_PATH = @PPPD_PATH@
326327 PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
327328 PTHREAD_CC = @PTHREAD_CC@
322322 14
323323 15
324324 16</pre></td>
325 <td class="listing_code"><pre class="programlisting"><span class="n">NMConnection</span><span class="w"> </span><span class="o">*</span><span class="n">secrets</span><span class="p">;</span><span class="w"></span>
326 <span class="n">NMSettingWirelessSecurity</span><span class="w"> </span><span class="o">*</span><span class="n">s_wsec</span><span class="p">;</span><span class="w"></span>
327 <span class="n">GVariant</span><span class="w"> </span><span class="o">*</span><span class="n">secrets_dict</span><span class="p">;</span><span class="w"></span>
325 <td class="listing_code"><pre class="programlisting"><span class="n">NMConnection</span><span class="w"> </span><span class="o">*</span><span class="n">secrets</span><span class="p">;</span>
326 <span class="n">NMSettingWirelessSecurity</span><span class="w"> </span><span class="o">*</span><span class="n">s_wsec</span><span class="p">;</span>
327 <span class="n">GVariant</span><span class="w"> </span><span class="o">*</span><span class="n">secrets_dict</span><span class="p">;</span>
328328
329 <span class="n">secrets</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nm_simple_connection_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
330 <span class="n">s_wsec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">NMSettingWirelessSecurity</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">nm_setting_wireless_security_new</span><span class="w"> </span><span class="p">();</span><span class="w"></span>
331 <span class="n">g_object_set</span><span class="w"> </span><span class="p">(</span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">s_wsec</span><span class="p">),</span><span class="w"></span>
332 <span class="w"> </span><span class="n">NM_SETTING_WIRELESS_SECURITY_PSK</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;my really cool PSK&quot;</span><span class="p">,</span><span class="w"></span>
333 <span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
334 <span class="n">nm_connection_add_setting</span><span class="w"> </span><span class="p">(</span><span class="n">secrets</span><span class="p">,</span><span class="w"> </span><span class="n">NM_SETTING</span><span class="w"> </span><span class="p">(</span><span class="n">s_wsec</span><span class="p">));</span><span class="w"></span>
335 <span class="n">secrets_dict</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nm_connection_to_dbus</span><span class="w"> </span><span class="p">(</span><span class="n">secrets</span><span class="p">,</span><span class="w"> </span><span class="n">NM_CONNECTION_SERIALIZE_ALL</span><span class="p">);</span><span class="w"></span>
329 <span class="n">secrets</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nm_simple_connection_new</span><span class="w"> </span><span class="p">();</span>
330 <span class="n">s_wsec</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">NMSettingWirelessSecurity</span><span class="w"> </span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="n">nm_setting_wireless_security_new</span><span class="w"> </span><span class="p">();</span>
331 <span class="n">g_object_set</span><span class="w"> </span><span class="p">(</span><span class="n">G_OBJECT</span><span class="w"> </span><span class="p">(</span><span class="n">s_wsec</span><span class="p">),</span>
332 <span class="w"> </span><span class="n">NM_SETTING_WIRELESS_SECURITY_PSK</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;my really cool PSK&quot;</span><span class="p">,</span>
333 <span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
334 <span class="n">nm_connection_add_setting</span><span class="w"> </span><span class="p">(</span><span class="n">secrets</span><span class="p">,</span><span class="w"> </span><span class="n">NM_SETTING</span><span class="w"> </span><span class="p">(</span><span class="n">s_wsec</span><span class="p">));</span>
335 <span class="n">secrets_dict</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nm_connection_to_dbus</span><span class="w"> </span><span class="p">(</span><span class="n">secrets</span><span class="p">,</span><span class="w"> </span><span class="n">NM_CONNECTION_SERIALIZE_ALL</span><span class="p">);</span>
336336
337 <span class="p">(</span><span class="n">call</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">NMSecretAgentOldGetSecretsFunc</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">secrets_dict</span><span class="p">)</span><span class="w"></span>
337 <span class="p">(</span><span class="n">call</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">NMSecretAgentOldGetSecretsFunc</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">secrets_dict</span><span class="p">)</span>
338338
339 <span class="n">g_object_unref</span><span class="w"> </span><span class="p">(</span><span class="n">secrets</span><span class="p">);</span><span class="w"></span>
340 <span class="n">g_variant_unref</span><span class="w"> </span><span class="p">(</span><span class="n">secrets_dict</span><span class="p">);</span><span class="w"></span></pre></td>
339 <span class="n">g_object_unref</span><span class="w"> </span><span class="p">(</span><span class="n">secrets</span><span class="p">);</span>
340 <span class="n">g_variant_unref</span><span class="w"> </span><span class="p">(</span><span class="n">secrets_dict</span><span class="p">);</span></pre></td>
341341 </tr>
342342 </tbody>
343343 </table>
5454 <a class="link" href="NMSettingBondPort.html#nm-setting-bond-port-get-queue-id" title="nm_setting_bond_port_get_queue_id ()">nm_setting_bond_port_get_queue_id</a> <span class="c_punctuation">()</span>
5555 </td>
5656 </tr>
57 <tr>
58 <td class="function_type">
59 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>
60 </td>
61 <td class="function_name">
62 <a class="link" href="NMSettingBondPort.html#nm-setting-bond-port-get-prio" title="nm_setting_bond_port_get_prio ()">nm_setting_bond_port_get_prio</a> <span class="c_punctuation">()</span>
63 </td>
64 </tr>
5765 </tbody>
5866 </table></div>
5967 </div>
7280 <tr>
7381 <td class="define_keyword">#define</td>
7482 <td class="function_name"><a class="link" href="NMSettingBondPort.html#NM-SETTING-BOND-PORT-QUEUE-ID:CAPS" title="NM_SETTING_BOND_PORT_QUEUE_ID">NM_SETTING_BOND_PORT_QUEUE_ID</a></td>
83 </tr>
84 <tr>
85 <td class="define_keyword">#define</td>
86 <td class="function_name"><a class="link" href="NMSettingBondPort.html#NM-SETTING-BOND-PORT-PRIO:CAPS" title="NM_SETTING_BOND_PORT_PRIO">NM_SETTING_BOND_PORT_PRIO</a></td>
7587 </tr>
7688 </tbody>
7789 </table></div>
121133 </div>
122134 <p class="since">Since: 1.34</p>
123135 </div>
136 <hr>
137 <div class="refsect2">
138 <a name="nm-setting-bond-port-get-prio"></a><h3>nm_setting_bond_port_get_prio ()</h3>
139 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint32"><span class="returnvalue">gint32</span></a>
140 nm_setting_bond_port_get_prio (<em class="parameter"><code><a class="link" href="NMSettingBondPort.html" title="NMSettingBondPort"><span class="type">NMSettingBondPort</span></a> *setting</code></em>);</pre>
141 <div class="refsect3">
142 <a name="nm-setting-bond-port-get-prio.parameters"></a><h4>Parameters</h4>
143 <div class="informaltable"><table class="informaltable" width="100%" border="0">
144 <colgroup>
145 <col width="150px" class="parameters_name">
146 <col class="parameters_description">
147 <col width="200px" class="parameters_annotations">
148 </colgroup>
149 <tbody><tr>
150 <td class="parameter_name"><p>setting</p></td>
151 <td class="parameter_description"><p>the <a class="link" href="NMSettingBondPort.html" title="NMSettingBondPort"><span class="type">NMSettingBondPort</span></a></p></td>
152 <td class="parameter_annotations"> </td>
153 </tr></tbody>
154 </table></div>
155 </div>
156 <div class="refsect3">
157 <a name="nm-setting-bond-port-get-prio.returns"></a><h4>Returns</h4>
158 <p> the <span class="type">“prio”</span> property of the setting</p>
159 </div>
160 <p class="since">Since: 1.44, 1.42.8</p>
161 </div>
124162 </div>
125163 <div class="refsect1">
126164 <a name="NMSettingBondPort.other_details"></a><h2>Types and Values</h2>
135173 <pre class="programlisting">#define NM_SETTING_BOND_PORT_QUEUE_ID "queue-id"
136174 </pre>
137175 </div>
176 <hr>
177 <div class="refsect2">
178 <a name="NM-SETTING-BOND-PORT-PRIO:CAPS"></a><h3>NM_SETTING_BOND_PORT_PRIO</h3>
179 <pre class="programlisting">#define NM_SETTING_BOND_PORT_PRIO "prio"
180 </pre>
181 </div>
138182 </div>
139183 </div>
140184 <div class="footer">
16601660 </dt>
16611661 <dd></dd>
16621662 <dt>
1663 NMSettingBondPort:prio, object property in NMSettingOvs
1664 </dt>
1665 <dd></dd>
1666 <dt>
16631667 NMSettingBondPort:queue-id, object property in NMSettingOvs
16641668 </dt>
16651669 <dd></dd>
40644068 </dt>
40654069 <dd></dd>
40664070 <dt>
4071 <a class="link" href="libnm-nm-version.html#NM-AVAILABLE-IN-1-42-8:CAPS" title="NM_AVAILABLE_IN_1_42_8">NM_AVAILABLE_IN_1_42_8</a>, macro in <a class="link" href="libnm-nm-version.html" title="nm-version">nm-version</a>
4072 </dt>
4073 <dd></dd>
4074 <dt>
40674075 <a class="link" href="libnm-nm-version.html#NM-AVAILABLE-IN-1-6:CAPS" title="NM_AVAILABLE_IN_1_6">NM_AVAILABLE_IN_1_6</a>, macro in <a class="link" href="libnm-nm-version.html" title="nm-version">nm-version</a>
40684076 </dt>
40694077 <dd></dd>
90769084 </dt>
90779085 <dd></dd>
90789086 <dt>
9087 <a class="link" href="NMSettingBondPort.html#nm-setting-bond-port-get-prio" title="nm_setting_bond_port_get_prio ()">nm_setting_bond_port_get_prio</a>, function in <a class="link" href="NMSettingBondPort.html" title="NMSettingBondPort">NMSettingBondPort</a>
9088 </dt>
9089 <dd></dd>
9090 <dt>
90799091 <a class="link" href="NMSettingBondPort.html#nm-setting-bond-port-get-queue-id" title="nm_setting_bond_port_get_queue_id ()">nm_setting_bond_port_get_queue_id</a>, function in <a class="link" href="NMSettingBondPort.html" title="NMSettingBondPort">NMSettingBondPort</a>
90809092 </dt>
90819093 <dd></dd>
90849096 </dt>
90859097 <dd></dd>
90869098 <dt>
9099 <a class="link" href="NMSettingBondPort.html#NM-SETTING-BOND-PORT-PRIO:CAPS" title="NM_SETTING_BOND_PORT_PRIO">NM_SETTING_BOND_PORT_PRIO</a>, macro in <a class="link" href="NMSettingBondPort.html" title="NMSettingBondPort">NMSettingBondPort</a>
9100 </dt>
9101 <dd></dd>
9102 <dt>
90879103 <a class="link" href="NMSettingBondPort.html#NM-SETTING-BOND-PORT-QUEUE-ID:CAPS" title="NM_SETTING_BOND_PORT_QUEUE_ID">NM_SETTING_BOND_PORT_QUEUE_ID</a>, macro in <a class="link" href="NMSettingBondPort.html" title="NMSettingBondPort">NMSettingBondPort</a>
90889104 </dt>
90899105 <dd></dd>
1421714233 <dd></dd>
1421814234 <dt>
1421914235 <a class="link" href="libnm-nm-version-macros.html#NM-VERSION-1-42-2:CAPS" title="NM_VERSION_1_42_2">NM_VERSION_1_42_2</a>, macro in <a class="link" href="libnm-nm-version-macros.html" title="nm-version-macros">nm-version-macros</a>
14236 </dt>
14237 <dd></dd>
14238 <dt>
14239 <a class="link" href="libnm-nm-version-macros.html#NM-VERSION-1-42-8:CAPS" title="NM_VERSION_1_42_8">NM_VERSION_1_42_8</a>, macro in <a class="link" href="libnm-nm-version-macros.html" title="nm-version-macros">nm-version-macros</a>
1422014240 </dt>
1422114241 <dd></dd>
1422214242 <dt>
1414 <div>
1515 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libnm Reference Manual</p></th></tr></table></div>
1616 <div><p class="releaseinfo">
17 for libnm 1.42.6
17 for libnm 1.42.8
1818
1919 The latest version of this documentation can be found on-line at
2020 <a class="ulink" href="https://networkmanager.dev/docs/libnm/latest/" target="_top">https://networkmanager.dev/docs/libnm/latest/</a>.
175175 </tr>
176176 <tr>
177177 <td class="define_keyword">#define</td>
178 <td class="function_name"><a class="link" href="libnm-nm-version-macros.html#NM-VERSION-1-42-8:CAPS" title="NM_VERSION_1_42_8">NM_VERSION_1_42_8</a></td>
179 </tr>
180 <tr>
181 <td class="define_keyword">#define</td>
178182 <td class="function_name"><a class="link" href="libnm-nm-version-macros.html#NM-API-VERSION:CAPS" title="NM_API_VERSION">NM_API_VERSION</a></td>
179183 </tr>
180184 <tr>
260264 <hr>
261265 <div class="refsect2">
262266 <a name="NM-MICRO-VERSION:CAPS"></a><h3>NM_MICRO_VERSION</h3>
263 <pre class="programlisting">#define NM_MICRO_VERSION (6)
267 <pre class="programlisting">#define NM_MICRO_VERSION (8)
264268 </pre>
265269 <p>Evaluates to the micro version number of NetworkManager which this source
266270 compiled against.</p>
413417 <div class="refsect2">
414418 <a name="NM-VERSION-1-42-2:CAPS"></a><h3>NM_VERSION_1_42_2</h3>
415419 <pre class="programlisting">#define NM_VERSION_1_42_2 (NM_ENCODE_VERSION(1, 42, 2))
420 </pre>
421 </div>
422 <hr>
423 <div class="refsect2">
424 <a name="NM-VERSION-1-42-8:CAPS"></a><h3>NM_VERSION_1_42_8</h3>
425 <pre class="programlisting">#define NM_VERSION_1_42_8 (NM_ENCODE_VERSION(1, 42, 8))
416426 </pre>
417427 </div>
418428 <hr>
383383 <td class="define_keyword">#define</td>
384384 <td class="function_name"><a class="link" href="libnm-nm-version.html#NM-AVAILABLE-IN-1-42-2:CAPS" title="NM_AVAILABLE_IN_1_42_2">NM_AVAILABLE_IN_1_42_2</a></td>
385385 </tr>
386 <tr>
387 <td class="define_keyword">#define</td>
388 <td class="function_name"><a class="link" href="libnm-nm-version.html#NM-AVAILABLE-IN-1-42-8:CAPS" title="NM_AVAILABLE_IN_1_42_8">NM_AVAILABLE_IN_1_42_8</a></td>
389 </tr>
386390 </tbody>
387391 </table></div>
388392 </div>
819823 <div class="refsect2">
820824 <a name="NM-AVAILABLE-IN-1-42-2:CAPS"></a><h3>NM_AVAILABLE_IN_1_42_2</h3>
821825 <pre class="programlisting">#define NM_AVAILABLE_IN_1_42_2 G_UNAVAILABLE(1, 42.2)
826 </pre>
827 </div>
828 <hr>
829 <div class="refsect2">
830 <a name="NM-AVAILABLE-IN-1-42-8:CAPS"></a><h3>NM_AVAILABLE_IN_1_42_8</h3>
831 <pre class="programlisting">#define NM_AVAILABLE_IN_1_42_8 G_UNAVAILABLE(1, 42.8)
822832 </pre>
823833 </div>
824834 </div>
981981 <keyword type="macro" name="NM_SETTING_BLUETOOTH_TYPE_NAP" link="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-TYPE-NAP:CAPS"/>
982982 <keyword type="function" name="nm_setting_bond_port_new ()" link="NMSettingBondPort.html#nm-setting-bond-port-new" since="1.34"/>
983983 <keyword type="function" name="nm_setting_bond_port_get_queue_id ()" link="NMSettingBondPort.html#nm-setting-bond-port-get-queue-id" since="1.34"/>
984 <keyword type="function" name="nm_setting_bond_port_get_prio ()" link="NMSettingBondPort.html#nm-setting-bond-port-get-prio" since="1.44, 1.42.8"/>
984985 <keyword type="macro" name="NM_SETTING_BOND_PORT_SETTING_NAME" link="NMSettingBondPort.html#NM-SETTING-BOND-PORT-SETTING-NAME:CAPS"/>
985986 <keyword type="macro" name="NM_SETTING_BOND_PORT_QUEUE_ID" link="NMSettingBondPort.html#NM-SETTING-BOND-PORT-QUEUE-ID:CAPS"/>
987 <keyword type="macro" name="NM_SETTING_BOND_PORT_PRIO" link="NMSettingBondPort.html#NM-SETTING-BOND-PORT-PRIO:CAPS"/>
986988 <keyword type="function" name="nm_setting_bond_new ()" link="NMSettingBond.html#nm-setting-bond-new"/>
987989 <keyword type="function" name="nm_setting_bond_get_num_options ()" link="NMSettingBond.html#nm-setting-bond-get-num-options"/>
988990 <keyword type="function" name="nm_setting_bond_get_option ()" link="NMSettingBond.html#nm-setting-bond-get-option"/>
32463248 <keyword type="macro" name="NM_DEPRECATED_IN_1_42" link="libnm-nm-version.html#NM-DEPRECATED-IN-1-42:CAPS"/>
32473249 <keyword type="macro" name="NM_AVAILABLE_IN_1_42" link="libnm-nm-version.html#NM-AVAILABLE-IN-1-42:CAPS"/>
32483250 <keyword type="macro" name="NM_AVAILABLE_IN_1_42_2" link="libnm-nm-version.html#NM-AVAILABLE-IN-1-42-2:CAPS"/>
3251 <keyword type="macro" name="NM_AVAILABLE_IN_1_42_8" link="libnm-nm-version.html#NM-AVAILABLE-IN-1-42-8:CAPS"/>
32493252 <keyword type="macro" name="NM_CHECK_VERSION()" link="libnm-nm-version-macros.html#NM-CHECK-VERSION:CAPS"/>
32503253 <keyword type="macro" name="NM_ENCODE_VERSION()" link="libnm-nm-version-macros.html#NM-ENCODE-VERSION:CAPS"/>
32513254 <keyword type="macro" name="NM_MAJOR_VERSION" link="libnm-nm-version-macros.html#NM-MAJOR-VERSION:CAPS"/>
32763279 <keyword type="macro" name="NM_VERSION_1_40" link="libnm-nm-version-macros.html#NM-VERSION-1-40:CAPS"/>
32773280 <keyword type="macro" name="NM_VERSION_1_42" link="libnm-nm-version-macros.html#NM-VERSION-1-42:CAPS"/>
32783281 <keyword type="macro" name="NM_VERSION_1_42_2" link="libnm-nm-version-macros.html#NM-VERSION-1-42-2:CAPS"/>
3282 <keyword type="macro" name="NM_VERSION_1_42_8" link="libnm-nm-version-macros.html#NM-VERSION-1-42-8:CAPS"/>
32793283 <keyword type="macro" name="NM_API_VERSION" link="libnm-nm-version-macros.html#NM-API-VERSION:CAPS"/>
32803284 <keyword type="macro" name="NM_VERSION_CUR_STABLE" link="libnm-nm-version-macros.html#NM-VERSION-CUR-STABLE:CAPS"/>
32813285 <keyword type="macro" name="NM_VERSION_NEXT_STABLE" link="libnm-nm-version-macros.html#NM-VERSION-NEXT-STABLE:CAPS"/>
7272 10
7373 11
7474 12</pre></td>
75 <td class="listing_code"><pre class="programlisting"><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;glib.h&gt;</span><span class="cp"></span>
76 <span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;NetworkManager.h&gt;</span><span class="cp"></span>
77
78 <span class="kt">int</span><span class="w"></span>
79 <span class="nf">main</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span><span class="w"></span>
80 <span class="p">{</span><span class="w"></span>
81 <span class="w"> </span><span class="n">NMClient</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="p">;</span><span class="w"></span>
82
83 <span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nm_client_new</span><span class="w"> </span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span><span class="w"></span>
84 <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">client</span><span class="p">)</span><span class="w"></span>
85 <span class="w"> </span><span class="n">g_print</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;NetworkManager version: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">nm_client_get_version</span><span class="w"> </span><span class="p">(</span><span class="n">client</span><span class="p">));</span><span class="w"></span>
86 <span class="p">}</span><span class="w"></span></pre></td>
75 <td class="listing_code"><pre class="programlisting"><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;glib.h&gt;</span>
76 <span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;NetworkManager.h&gt;</span>
77
78 <span class="kt">int</span>
79 <span class="nf">main</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">*</span><span class="n">argv</span><span class="p">[])</span>
80 <span class="p">{</span>
81 <span class="w"> </span><span class="n">NMClient</span><span class="w"> </span><span class="o">*</span><span class="n">client</span><span class="p">;</span>
82
83 <span class="w"> </span><span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">nm_client_new</span><span class="w"> </span><span class="p">(</span><span class="nb">NULL</span><span class="p">,</span><span class="w"> </span><span class="nb">NULL</span><span class="p">);</span>
84 <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">client</span><span class="p">)</span>
85 <span class="w"> </span><span class="n">g_print</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;NetworkManager version: %s</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">nm_client_get_version</span><span class="w"> </span><span class="p">(</span><span class="n">client</span><span class="p">));</span>
86 <span class="p">}</span></pre></td>
8787 </tr>
8888 </tbody>
8989 </table>
9595 </p>
9696 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>cc $(pkg-config --libs --cflags libnm) -o hello-nm hello-nm.c</code></strong>
9797 <code class="prompt">$ </code><strong class="userinput"><code>./hello-nm</code></strong>
98 NetworkManager version: 1.42.6
98 NetworkManager version: 1.42.8
9999
100100 <code class="prompt">$ </code></pre>
101101 <p>
113113 <td class="listing_lines" align="right"><pre>1
114114 2
115115 3</pre></td>
116 <td class="listing_code"><pre class="programlisting"><span class="n">PKG_CHECK_MODULES</span><span class="p">(</span><span class="n">LIBNM</span><span class="p">,</span><span class="w"> </span><span class="n">libnm</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mf">1.8</span><span class="p">)</span><span class="w"></span>
117 <span class="n">LIBNM_CFLAGS</span><span class="o">=</span><span class="s">&quot;$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8&quot;</span><span class="w"></span>
118 <span class="n">LIBNM_CFLAGS</span><span class="o">=</span><span class="s">&quot;$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8&quot;</span><span class="w"></span></pre></td>
116 <td class="listing_code"><pre class="programlisting"><span class="n">PKG_CHECK_MODULES</span><span class="p">(</span><span class="n">LIBNM</span><span class="p">,</span><span class="w"> </span><span class="n">libnm</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mf">1.8</span><span class="p">)</span>
117 <span class="n">LIBNM_CFLAGS</span><span class="o">=</span><span class="s">&quot;$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8&quot;</span>
118 <span class="n">LIBNM_CFLAGS</span><span class="o">=</span><span class="s">&quot;$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8&quot;</span></pre></td>
119119 </tr>
120120 </tbody>
121121 </table>
136136 4
137137 5
138138 6</pre></td>
139 <td class="listing_code"><pre class="programlisting"><span class="n">import</span><span class="w"> </span><span class="n">gi</span><span class="w"></span>
140 <span class="n">gi</span><span class="p">.</span><span class="n">require_version</span><span class="p">(</span><span class="err">&#39;</span><span class="n">NM</span><span class="err">&#39;</span><span class="p">,</span><span class="w"> </span><span class="err">&#39;</span><span class="mf">1.0</span><span class="err">&#39;</span><span class="p">)</span><span class="w"></span>
141 <span class="n">from</span><span class="w"> </span><span class="n">gi</span><span class="p">.</span><span class="n">repository</span><span class="w"> </span><span class="n">import</span><span class="w"> </span><span class="n">NM</span><span class="w"></span>
142
143 <span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">NM</span><span class="p">.</span><span class="n">Client</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">None</span><span class="p">)</span><span class="w"></span>
144 <span class="n">print</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;NetworkManager version &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">client</span><span class="p">.</span><span class="n">get_version</span><span class="p">())</span><span class="w"></span></pre></td>
139 <td class="listing_code"><pre class="programlisting"><span class="n">import</span><span class="w"> </span><span class="n">gi</span>
140 <span class="n">gi</span><span class="p">.</span><span class="n">require_version</span><span class="p">(</span><span class="err">&#39;</span><span class="n">NM</span><span class="err">&#39;</span><span class="p">,</span><span class="w"> </span><span class="err">&#39;</span><span class="mf">1.0</span><span class="err">&#39;</span><span class="p">)</span>
141 <span class="n">from</span><span class="w"> </span><span class="n">gi</span><span class="p">.</span><span class="n">repository</span><span class="w"> </span><span class="n">import</span><span class="w"> </span><span class="n">NM</span>
142
143 <span class="n">client</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">NM</span><span class="p">.</span><span class="n">Client</span><span class="p">.</span><span class="n">new</span><span class="p">(</span><span class="n">None</span><span class="p">)</span>
144 <span class="n">print</span><span class="w"> </span><span class="p">(</span><span class="s">&quot;NetworkManager version &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">client</span><span class="p">.</span><span class="n">get_version</span><span class="p">())</span></pre></td>
145145 </tr>
146146 </tbody>
147147 </table>
21892189 <TITLE>NMSettingBondPort</TITLE>
21902190 NM_SETTING_BOND_PORT_SETTING_NAME
21912191 NM_SETTING_BOND_PORT_QUEUE_ID
2192 NM_SETTING_BOND_PORT_PRIO
21922193 nm_setting_bond_port_new
21932194 nm_setting_bond_port_get_queue_id
2195 nm_setting_bond_port_get_prio
21942196 <SUBSECTION Standard>
21952197 NMSettingBondPortClass
21962198 NM_IS_SETTING_BOND_PORT
44254427 NM_DEPRECATED_IN_1_42_FOR
44264428 NM_AVAILABLE_IN_1_42
44274429 NM_AVAILABLE_IN_1_42_2
4430 NM_AVAILABLE_IN_1_42_8
44284431 </SECTION>
44294432
44304433 <SECTION>
44594462 NM_VERSION_1_40
44604463 NM_VERSION_1_42
44614464 NM_VERSION_1_42_2
4465 NM_VERSION_1_42_8
44624466 NM_API_VERSION
44634467 NM_VERSION_CUR_STABLE
44644468 NM_VERSION_NEXT_STABLE
0 1.42.6
0 1.42.8
11 .\" Title: NetworkManager-dispatcher
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Network management daemons
6 .\" Source: NetworkManager-dispatcher 1.42.6
6 .\" Source: NetworkManager-dispatcher 1.42.8
77 .\" Language: English
88 .\"
99 .TH "NETWORKMANAGER\-DISPATCHER" "8" "" "NetworkManager\-dispatcher 1\&" "Network management daemons"
11 .\" Title: NetworkManager-wait-online.service
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Network management daemons
6 .\" Source: NetworkManager-wait-online.service 1.42.6
6 .\" Source: NetworkManager-wait-online.service 1.42.8
77 .\" Language: English
88 .\"
99 .TH "NETWORKMANAGER\-WAIT\-ONLINE\&" "8" "" "NetworkManager\-wait\-online\&" "Network management daemons"
11 .\" Title: NetworkManager
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Network management daemons
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.42\&.6" "Network management daemons"
9 .TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.42\&.8" "Network management daemons"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: NetworkManager.conf
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Configuration
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.42\&.6" "Configuration"
9 .TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.42\&.8" "Configuration"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
13711371 .RS 4
13721372 .\}
13731373 .nf
1374 # always skip loading the file when running NetworkManager with
1374 # only load the file when running NetworkManager with
13751375 # environment variable "NM_CONFIG_ENABLE_TAG=TAG1"
13761376 [\&.config]
13771377 enable=env:TAG1
15671567 You can also match against the value of the environment variable
15681568 <literal>NM_CONFIG_ENABLE_TAG</literal>, like:
15691569 <programlisting>
1570 # always skip loading the file when running NetworkManager with
1570 # only load the file when running NetworkManager with
15711571 # environment variable "NM_CONFIG_ENABLE_TAG=TAG1"
15721572 [.config]
15731573 enable=env:TAG1
11 .\" Title: nm-cloud-setup
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Automatic Network Configuration in Cloud with NetworkManager
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.42\&.6" "Automatic Network Configuratio"
9 .TH "NM\-CLOUD\-SETUP" "8" "" "NetworkManager 1\&.42\&.8" "Automatic Network Configuratio"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: nm-initrd-generator
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: System Administration
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.42\&.6" "System Administration"
9 .TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.42\&.8" "System Administration"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: nm-online
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: General Commands Manual
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.42\&.6" "General Commands Manual"
9 .TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.42\&.8" "General Commands Manual"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: nm-openvswitch
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Open vSwitch support overview
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.42\&.6" "Open vSwitch support overview"
9 .TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.42\&.8" "Open vSwitch support overview"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: nm-settings-dbus
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Configuration
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.42\&.6" "Configuration"
9 .TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.42\&.8" "Configuration"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
20082008 T}:T{
20092009 \-1
20102010 T}:T{
2011 The InfiniBand P_Key to use for this device\&. A value of \-1 means to use the default P_Key (aka "the P_Key at index 0")\&. Otherwise, it is a 16\-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key\&.
2011 The InfiniBand p\-key to use for this device\&. A value of \-1 means to use the default p\-key (aka "the p\-key at index 0")\&. Otherwise, it is a 16\-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p\-key\&. The values 0 and 0x8000 are not allowed\&.
2012
2013 With the p\-key set, the interface name is always "$parent\&.$p_key"\&. Setting "connection\&.interface\-name" to another name is not supported\&.
2014
2015 Note that kernel will internally always set the full membership bit, although the interface name does not reflect that\&. Usually the user would want to configure a full membership p\-key with 0x8000 flag set\&.
20122016 T}
20132017 T{
20142018 parent
58565860 Value Description
58575861 T}
58585862 .T&
5863 l l l l
58595864 l l l l.
5865 T{
5866 prio
5867 T}:T{
5868 int32
5869 T}:T{
5870 0
5871 T}:T{
5872 The port priority for bond active port re\-selection during failover\&. A higher number means a higher priority in selection\&. The primary port has the highest priority\&. This option is only compatible with active\-backup, balance\-tlb and balance\-alb modes\&.
5873 T}
58605874 T{
58615875 queue\-id
58625876 T}:T{
00 <?xml version="1.0"?>
11 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
2 <refentry id="nm-settings-dbus"><refentryinfo><title>nm-settings-dbus</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-dbus</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings-dbus</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles on the D-Bus API</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
2 <refentry id="nm-settings-dbus"><refentryinfo><title>nm-settings-dbus</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-dbus</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.8</refmiscinfo></refmeta><refnamediv><refname>nm-settings-dbus</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles on the D-Bus API</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
33 NetworkManager is based on a concept of connection profiles, sometimes referred to as
44 connections only. These connection profiles contain a network configuration. When
55 NetworkManager activates a connection profile on a network device the configuration will
151151
152152 Since 1.34, NULL is the default and means "fabric". Before 1.34, NULL was rejected as invalid and the default was "fabric".</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.app-fcoe-priority">app-fcoe-priority</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>The highest User Priority (0 - 7) which FCoE frames should use, or -1 for default priority. Only used when the "app-fcoe-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.app-fip-flags">app-fip-flags</entry><entry align="left">NMSettingDcbFlags (uint32)</entry><entry align="left"/><entry>Specifies the NMSettingDcbFlags for the DCB FIP application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.app-fip-priority">app-fip-priority</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>The highest User Priority (0 - 7) which FIP frames should use, or -1 for default priority. Only used when the "app-fip-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.app-iscsi-flags">app-iscsi-flags</entry><entry align="left">NMSettingDcbFlags (uint32)</entry><entry align="left"/><entry>Specifies the NMSettingDcbFlags for the DCB iSCSI application. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.app-iscsi-priority">app-iscsi-priority</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>The highest User Priority (0 - 7) which iSCSI frames should use, or -1 for default priority. Only used when the "app-iscsi-flags" property includes the NM_SETTING_DCB_FLAG_ENABLE (0x1) flag.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-bandwidth">priority-bandwidth</entry><entry align="left">array of uint32</entry><entry align="left"/><entry>An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the percentage of bandwidth of the priority's assigned group that the priority may use. The sum of all percentages for priorities which belong to the same group must total 100 percents.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-flow-control">priority-flow-control</entry><entry align="left">array of uint32</entry><entry align="left"/><entry>An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the corresponding priority should transmit priority pause.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-flow-control-flags">priority-flow-control-flags</entry><entry align="left">NMSettingDcbFlags (uint32)</entry><entry align="left"/><entry>Specifies the NMSettingDcbFlags for DCB Priority Flow Control (PFC). Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-group-bandwidth">priority-group-bandwidth</entry><entry align="left">array of uint32</entry><entry align="left"/><entry>An array of 8 uint values, where the array index corresponds to the Priority Group ID (0 - 7) and the value indicates the percentage of link bandwidth allocated to that group. Allowed values are 0 - 100, and the sum of all values must total 100 percents.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-group-flags">priority-group-flags</entry><entry align="left">NMSettingDcbFlags (uint32)</entry><entry align="left"/><entry>Specifies the NMSettingDcbFlags for DCB Priority Groups. Flags may be any combination of NM_SETTING_DCB_FLAG_ENABLE (0x1), NM_SETTING_DCB_FLAG_ADVERTISE (0x2), and NM_SETTING_DCB_FLAG_WILLING (0x4).</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-group-id">priority-group-id</entry><entry align="left">array of uint32</entry><entry align="left"/><entry>An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the Priority Group ID. Allowed Priority Group ID values are 0 - 7 or 15 for the unrestricted group.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-strict-bandwidth">priority-strict-bandwidth</entry><entry align="left">array of uint32</entry><entry align="left"/><entry>An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the priority may use all of the bandwidth allocated to its assigned group.</entry></row><row><entry align="left" id="nm-settings-dbus.property.dcb.priority-traffic-class">priority-traffic-class</entry><entry align="left">array of uint32</entry><entry align="left"/><entry>An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the traffic class (0 - 7) to which the priority is mapped.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>dummy setting</title><para>Dummy Link Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody/></tgroup></informaltable></refsect2><refsect2><title>ethtool setting</title><para>Ethtool Ethernet Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody/></tgroup></informaltable></refsect2><refsect2><title>generic setting</title><para>Generic Link Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody/></tgroup></informaltable></refsect2><refsect2><title>gsm setting</title><para>GSM-based Mobile Broadband Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.gsm.apn">apn</entry><entry align="left">string</entry><entry align="left"/><entry>The GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it is important to use the correct APN for the user's mobile broadband plan. The APN may only be composed of the characters a-z, 0-9, ., and - per GSM 03.60 Section 14.9.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.auto-config">auto-config</entry><entry align="left">boolean</entry><entry align="left">FALSE</entry><entry>When TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.device-id">device-id</entry><entry align="left">string</entry><entry align="left"/><entry>The device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.home-only">home-only</entry><entry align="left">boolean</entry><entry align="left">FALSE</entry><entry>When TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.mtu">mtu</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.network-id">network-id</entry><entry align="left">string</entry><entry align="left"/><entry>The Network ID (GSM LAI format, ie MCC-MNC) to force specific network registration. If the Network ID is specified, NetworkManager will attempt to force the device to register only on the specified network. This can be used to ensure that the device does not roam when direct roaming control of the device is not otherwise possible.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.number">number</entry><entry align="left">string</entry><entry align="left"/><entry>Legacy setting that used to help establishing PPP data sessions for GSM-based modems.
153153
154 This property is deprecated since version 1.16.User-provided values for this setting are no longer used.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.password">password</entry><entry align="left">string</entry><entry align="left"/><entry>The password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.password-flags">password-flags</entry><entry align="left">NMSettingSecretFlags (uint32)</entry><entry align="left"/><entry>Flags indicating how to handle the "password" property.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.pin">pin</entry><entry align="left">string</entry><entry align="left"/><entry>If the SIM is locked with a PIN it must be unlocked before any other operations are requested. Specify the PIN here to allow operation of the device.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.pin-flags">pin-flags</entry><entry align="left">NMSettingSecretFlags (uint32)</entry><entry align="left"/><entry>Flags indicating how to handle the "pin" property.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.sim-id">sim-id</entry><entry align="left">string</entry><entry align="left"/><entry>The SIM card unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" which contains a SIM card matching the given identifier.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.sim-operator-id">sim-operator-id</entry><entry align="left">string</entry><entry align="left"/><entry>A MCC/MNC string like "310260" or "21601" identifying the specific mobile network operator which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" and "sim-id" which contains a SIM card provisioned by the given operator.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.username">username</entry><entry align="left">string</entry><entry align="left"/><entry>The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>infiniband setting</title><para>Infiniband Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.infiniband.mac-address">mac-address</entry><entry align="left">byte array</entry><entry align="left"/><entry>If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.mtu">mtu</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.p-key">p-key</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.parent">parent</entry><entry align="left">string</entry><entry align="left"/><entry>The interface name of the parent device of this device. Normally NULL, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.transport-mode">transport-mode</entry><entry align="left">string</entry><entry align="left"/><entry>The IP-over-InfiniBand transport mode. Either "datagram" or "connected".</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>ipv4 setting</title><para>IPv4 Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.ipv4.address-data">address-data</entry><entry align="left">array of vardict</entry><entry align="left"/><entry>Array of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.</entry></row><row><entry align="left" id="nm-settings-dbus.property.ipv4.addresses">addresses</entry><entry align="left">array of array of uint32</entry><entry align="left"/><entry>Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.
154 This property is deprecated since version 1.16.User-provided values for this setting are no longer used.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.password">password</entry><entry align="left">string</entry><entry align="left"/><entry>The password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.password-flags">password-flags</entry><entry align="left">NMSettingSecretFlags (uint32)</entry><entry align="left"/><entry>Flags indicating how to handle the "password" property.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.pin">pin</entry><entry align="left">string</entry><entry align="left"/><entry>If the SIM is locked with a PIN it must be unlocked before any other operations are requested. Specify the PIN here to allow operation of the device.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.pin-flags">pin-flags</entry><entry align="left">NMSettingSecretFlags (uint32)</entry><entry align="left"/><entry>Flags indicating how to handle the "pin" property.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.sim-id">sim-id</entry><entry align="left">string</entry><entry align="left"/><entry>The SIM card unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" which contains a SIM card matching the given identifier.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.sim-operator-id">sim-operator-id</entry><entry align="left">string</entry><entry align="left"/><entry>A MCC/MNC string like "310260" or "21601" identifying the specific mobile network operator which this connection applies to. If given, the connection will apply to any device also allowed by "device-id" and "sim-id" which contains a SIM card provisioned by the given operator.</entry></row><row><entry align="left" id="nm-settings-dbus.property.gsm.username">username</entry><entry align="left">string</entry><entry align="left"/><entry>The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>infiniband setting</title><para>Infiniband Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.infiniband.mac-address">mac-address</entry><entry align="left">byte array</entry><entry align="left"/><entry>If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.mtu">mtu</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.p-key">p-key</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka "the p-key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p-key. The values 0 and 0x8000 are not allowed.
155
156 With the p-key set, the interface name is always "$parent.$p_key". Setting "connection.interface-name" to another name is not supported.
157
158 Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set.</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.parent">parent</entry><entry align="left">string</entry><entry align="left"/><entry>The interface name of the parent device of this device. Normally NULL, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".</entry></row><row><entry align="left" id="nm-settings-dbus.property.infiniband.transport-mode">transport-mode</entry><entry align="left">string</entry><entry align="left"/><entry>The IP-over-InfiniBand transport mode. Either "datagram" or "connected".</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>ipv4 setting</title><para>IPv4 Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.ipv4.address-data">address-data</entry><entry align="left">array of vardict</entry><entry align="left"/><entry>Array of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.</entry></row><row><entry align="left" id="nm-settings-dbus.property.ipv4.addresses">addresses</entry><entry align="left">array of array of uint32</entry><entry align="left"/><entry>Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.
155159 Array of IPv4 address structures. Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet.</entry></row><row><entry align="left" id="nm-settings-dbus.property.ipv4.auto-route-ext-gw">auto-route-ext-gw</entry><entry align="left">NMTernary (int32)</entry><entry align="left"/><entry>VPN connections will default to add the route automatically unless this setting is set to FALSE.
156160
157161 For other connection types, adding such an automatic route is currently not supported and setting this to TRUE has no effect.</entry></row><row><entry align="left" id="nm-settings-dbus.property.ipv4.dad-timeout">dad-timeout</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero). A value greater than zero is a timeout in milliseconds.
447451
448452 There's little point in changing the default setting as NetworkManager will automatically determine whether it's feasible to start WPS enrollment from the Access Point capabilities.
449453
450 WPS can be disabled by setting this property to a value of 1.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>wpan setting</title><para>IEEE 802.15.4 (WPAN) MAC Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.wpan.channel">channel</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>IEEE 802.15.4 channel. A positive integer or -1, meaning "do not set, use whatever the device is already set to".</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.mac-address">mac-address</entry><entry align="left">string</entry><entry align="left"/><entry>If specified, this connection will only apply to the IEEE 802.15.4 (WPAN) MAC layer device whose permanent MAC address matches.</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.page">page</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not set, use whatever the device is already set to".</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.pan-id">pan-id</entry><entry align="left">uint32</entry><entry align="left">65535</entry><entry>IEEE 802.15.4 Personal Area Network (PAN) identifier.</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.short-address">short-address</entry><entry align="left">uint32</entry><entry align="left">65535</entry><entry>Short IEEE 802.15.4 address to be used within a restricted environment.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>bond-port setting</title><para>Bond Port Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.bond-port.queue-id">queue-id</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>hostname setting</title><para>Hostname settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.hostname.from-dhcp">from-dhcp</entry><entry align="left">NMTernary (int32)</entry><entry align="left"/><entry>Whether the system hostname can be determined from DHCP on this connection.
454 WPS can be disabled by setting this property to a value of 1.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>wpan setting</title><para>IEEE 802.15.4 (WPAN) MAC Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.wpan.channel">channel</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>IEEE 802.15.4 channel. A positive integer or -1, meaning "do not set, use whatever the device is already set to".</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.mac-address">mac-address</entry><entry align="left">string</entry><entry align="left"/><entry>If specified, this connection will only apply to the IEEE 802.15.4 (WPAN) MAC layer device whose permanent MAC address matches.</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.page">page</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not set, use whatever the device is already set to".</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.pan-id">pan-id</entry><entry align="left">uint32</entry><entry align="left">65535</entry><entry>IEEE 802.15.4 Personal Area Network (PAN) identifier.</entry></row><row><entry align="left" id="nm-settings-dbus.property.wpan.short-address">short-address</entry><entry align="left">uint32</entry><entry align="left">65535</entry><entry>Short IEEE 802.15.4 address to be used within a restricted environment.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>bond-port setting</title><para>Bond Port Settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.bond-port.prio">prio</entry><entry align="left">int32</entry><entry align="left">0</entry><entry>The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes.</entry></row><row><entry align="left" id="nm-settings-dbus.property.bond-port.queue-id">queue-id</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.</entry></row></tbody></tgroup></informaltable></refsect2><refsect2><title>hostname setting</title><para>Hostname settings.</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody><row><entry align="left" id="nm-settings-dbus.property.hostname.from-dhcp">from-dhcp</entry><entry align="left">NMTernary (int32)</entry><entry align="left"/><entry>Whether the system hostname can be determined from DHCP on this connection.
451455
452456 When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).</entry></row><row><entry align="left" id="nm-settings-dbus.property.hostname.from-dns-lookup">from-dns-lookup</entry><entry align="left">NMTernary (int32)</entry><entry align="left"/><entry>Whether the system hostname can be determined from reverse DNS lookup of addresses on this device.
453457
11 .\" Title: nm-settings-ifcfg-rh
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Configuration
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.42\&.6" "Configuration"
9 .TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.42\&.8" "Configuration"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
15111511 Description
15121512 T}
15131513 .T&
1514 l l l l
15141515 l l l l.
15151516 T{
15161517 queue\-id
15171518 T}:T{
1518 BONDING_OPTS: queue\-id=
1519 BOND_PORT_QUEUE_ID\fI(+)\fR
15191520 T}:T{
15201521 0
15211522 T}:T{
15221523 Queue ID\&.\fB
15231524
15241525 Allowed values: \fR0 \- 65535
1526 T}
1527 T{
1528 prio
1529 T}:T{
1530 BOND_PORT_PRIO\fI(+)\fR
1531 T}:T{
1532 0
1533 T}:T{
1534 Port priority\&.\fB
1535
1536 Allowed values: \fR\-2147483648 \- 2147483647
15251537 T}
15261538 .TE
15271539 .sp 1
25982610 T{
25992611 p\-key
26002612 T}:T{
2601 PKEY_ID (and PKEY=yes)
2613 PKEY_ID or PKEY_ID_NM(*) (requires PKEY=yes)
26022614 T}:T{
26032615 PKEY=no
26042616 T}:T{
2605 InfiniBand P_Key\&. The value can be a hex number prefixed with "0x" or a decimal number\&. When PKEY_ID is specified, PHYSDEV and DEVICE also must be specified\&.\fB
2617 InfiniBand P_Key\&. The value can be a hex number prefixed with "0x" or a decimal number\&. When PKEY_ID is specified, PHYSDEV must be specified\&. Note that ifcfg\-rh format will always automatically set the full membership flag 0x8000 for the PKEY_ID variable\&. To express IDs without the full membership flag, use PKEY_ID_NM\&. Note that kernel internally treats the interface as having the full membership flag set, this mainly affects the interface name\&. For the ifcfg file to be supported by initscripts\*(Aq ifup\-ib, the DEVICE= must always be set\&. NetworkManager does not require that\&.\fB
26062618
26072619 Example: \fRPKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0\&.8002
26082620 T}
00 <?xml version="1.0"?>
11 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
2 <refentry id="nm-settings-ifcfg-rh"><refentryinfo><title>nm-settings-ifcfg-rh</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-ifcfg-rh</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings-ifcfg-rh</refname><refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
2 <refentry id="nm-settings-ifcfg-rh"><refentryinfo><title>nm-settings-ifcfg-rh</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-ifcfg-rh</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.8</refmiscinfo></refmeta><refnamediv><refname>nm-settings-ifcfg-rh</refname><refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
33 NetworkManager is based on the concept of connection profiles that contain
44 network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be
55 stored in various formats. NetworkManager uses plugins for reading and writing
275275
276276 Example: </emphasis>ETHTOOL_OPTS="wol gs sopass 00:11:22:33:44:55"</entry></row><row><entry align="left">accept-all-mac-addresses</entry><entry align="left">ACCEPT_ALL_MAC_ADDRESSES</entry><entry align="left"/><entry align="left">Enforce the interface to accept all the packets.</entry></row></tbody></tgroup></table><table><title>bond setting</title><tgroup cols="4"><thead><row><entry>Property</entry><entry>Ifcfg-rh Variable</entry><entry>Default</entry><entry>Description</entry></row></thead><tbody><row><entry align="left">options</entry><entry align="left">BONDING_OPTS</entry><entry align="left"/><entry align="left">Bonding options.<emphasis role="bold">
277277
278 Example: </emphasis>BONDING_OPTS="miimon=100 mode=broadcast"</entry></row></tbody></tgroup></table><table><title>bond-port setting</title><tgroup cols="4"><thead><row><entry>Property</entry><entry>Ifcfg-rh Variable</entry><entry>Default</entry><entry>Description</entry></row></thead><tbody><row><entry align="left">queue-id</entry><entry align="left">BONDING_OPTS: queue-id=</entry><entry align="left">0</entry><entry align="left">Queue ID.<emphasis role="bold">
279
280 Allowed values: </emphasis>0 - 65535</entry></row></tbody></tgroup></table><table><title>bridge setting</title><tgroup cols="4"><thead><row><entry>Property</entry><entry>Ifcfg-rh Variable</entry><entry>Default</entry><entry>Description</entry></row></thead><tbody><row><entry align="left">mac-address</entry><entry align="left">BRIDGE_MACADDR<emphasis>(+)</emphasis></entry><entry align="left"/><entry align="left">MAC address of the bridge. Note that this requires a recent kernel support, originally introduced in 3.15 upstream kernel) BRIDGE_MACADDR for bridges is an NM extension.</entry></row><row><entry align="left">stp</entry><entry align="left">STP</entry><entry align="left">no</entry><entry align="left">Span tree protocol participation.</entry></row><row><entry align="left">priority</entry><entry align="left">BRIDGING_OPTS: priority=</entry><entry align="left">32768</entry><entry align="left">STP priority.<emphasis role="bold">
278 Example: </emphasis>BONDING_OPTS="miimon=100 mode=broadcast"</entry></row></tbody></tgroup></table><table><title>bond-port setting</title><tgroup cols="4"><thead><row><entry>Property</entry><entry>Ifcfg-rh Variable</entry><entry>Default</entry><entry>Description</entry></row></thead><tbody><row><entry align="left">queue-id</entry><entry align="left">BOND_PORT_QUEUE_ID<emphasis>(+)</emphasis></entry><entry align="left">0</entry><entry align="left">Queue ID.<emphasis role="bold">
279
280 Allowed values: </emphasis>0 - 65535</entry></row><row><entry align="left">prio</entry><entry align="left">BOND_PORT_PRIO<emphasis>(+)</emphasis></entry><entry align="left">0</entry><entry align="left">Port priority.<emphasis role="bold">
281
282 Allowed values: </emphasis>-2147483648 - 2147483647</entry></row></tbody></tgroup></table><table><title>bridge setting</title><tgroup cols="4"><thead><row><entry>Property</entry><entry>Ifcfg-rh Variable</entry><entry>Default</entry><entry>Description</entry></row></thead><tbody><row><entry align="left">mac-address</entry><entry align="left">BRIDGE_MACADDR<emphasis>(+)</emphasis></entry><entry align="left"/><entry align="left">MAC address of the bridge. Note that this requires a recent kernel support, originally introduced in 3.15 upstream kernel) BRIDGE_MACADDR for bridges is an NM extension.</entry></row><row><entry align="left">stp</entry><entry align="left">STP</entry><entry align="left">no</entry><entry align="left">Span tree protocol participation.</entry></row><row><entry align="left">priority</entry><entry align="left">BRIDGING_OPTS: priority=</entry><entry align="left">32768</entry><entry align="left">STP priority.<emphasis role="bold">
281283
282284 Allowed values: </emphasis>0 - 32768</entry></row><row><entry align="left">forward-delay</entry><entry align="left">DELAY</entry><entry align="left">15</entry><entry align="left">STP forwarding delay.<emphasis role="bold">
283285
420422
421423 Example: </emphasis>HOSTNAME_ONLY_FROM_DEFAULT=0,1</entry></row></tbody></tgroup></table><table><title>infiniband setting</title><tgroup cols="4"><thead><row><entry>Property</entry><entry>Ifcfg-rh Variable</entry><entry>Default</entry><entry>Description</entry></row></thead><tbody><row><entry align="left">mac-address</entry><entry align="left">HWADDR</entry><entry align="left"/><entry align="left">IBoIP 20-byte hardware address of the device (in traditional hex-digits-and-colons notation). Note that for initscripts this is the current MAC address of the device as found during ifup. For NetworkManager this is the permanent MAC address. Or in case no permanent MAC address exists, the MAC address initially configured on the device.<emphasis role="bold">
422424
423 Example: </emphasis>HWADDR=01:02:03:04:05:06:07:08:09:0A:01:02:03:04:05:06:07:08:09:11</entry></row><row><entry align="left">mtu</entry><entry align="left">MTU</entry><entry align="left"/><entry align="left">MTU of the interface.</entry></row><row><entry align="left">transport-mode</entry><entry align="left">CONNECTED_MODE</entry><entry align="left">CONNECTED_MODE=no</entry><entry align="left">CONNECTED_MODE=yes for "connected" mode, CONNECTED_MODE=no for "datagram" mode</entry></row><row><entry align="left">p-key</entry><entry align="left">PKEY_ID (and PKEY=yes)</entry><entry align="left">PKEY=no</entry><entry align="left">InfiniBand P_Key. The value can be a hex number prefixed with "0x" or a decimal number. When PKEY_ID is specified, PHYSDEV and DEVICE also must be specified.<emphasis role="bold">
425 Example: </emphasis>HWADDR=01:02:03:04:05:06:07:08:09:0A:01:02:03:04:05:06:07:08:09:11</entry></row><row><entry align="left">mtu</entry><entry align="left">MTU</entry><entry align="left"/><entry align="left">MTU of the interface.</entry></row><row><entry align="left">transport-mode</entry><entry align="left">CONNECTED_MODE</entry><entry align="left">CONNECTED_MODE=no</entry><entry align="left">CONNECTED_MODE=yes for "connected" mode, CONNECTED_MODE=no for "datagram" mode</entry></row><row><entry align="left">p-key</entry><entry align="left">PKEY_ID or PKEY_ID_NM(*) (requires PKEY=yes)</entry><entry align="left">PKEY=no</entry><entry align="left">InfiniBand P_Key. The value can be a hex number prefixed with "0x" or a decimal number. When PKEY_ID is specified, PHYSDEV must be specified. Note that ifcfg-rh format will always automatically set the full membership flag 0x8000 for the PKEY_ID variable. To express IDs without the full membership flag, use PKEY_ID_NM. Note that kernel internally treats the interface as having the full membership flag set, this mainly affects the interface name. For the ifcfg file to be supported by initscripts' ifup-ib, the DEVICE= must always be set. NetworkManager does not require that.<emphasis role="bold">
424426
425427 Example: </emphasis>PKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0.8002</entry></row><row><entry align="left">parent</entry><entry align="left">PHYSDEV (PKEY=yes)</entry><entry align="left">PKEY=no</entry><entry align="left">InfiniBand parent device.<emphasis role="bold">
426428
11 .\" Title: nm-settings-keyfile
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Configuration
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.42\&.6" "Configuration"
9 .TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.42\&.8" "Configuration"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
00 <?xml version="1.0"?>
11 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
2 <refentry id="nm-settings-keyfile"><refentryinfo><title>nm-settings-keyfile</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings-keyfile</refname><refpurpose>Description of <emphasis>keyfile</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
2 <refentry id="nm-settings-keyfile"><refentryinfo><title>nm-settings-keyfile</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.8</refmiscinfo></refmeta><refnamediv><refname>nm-settings-keyfile</refname><refpurpose>Description of <emphasis>keyfile</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
33 NetworkManager is based on the concept of connection profiles that contain
44 network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be
55 stored in various formats. NetworkManager uses plugins for reading and writing
11 .\" Title: nm-settings-nmcli
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Configuration
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.42\&.6" "Configuration"
9 .TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.42\&.8" "Configuration"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
17341734 .RS 4
17351735 Alias: p\-key
17361736 .sp
1737 The InfiniBand P_Key to use for this device\&. A value of \-1 means to use the default P_Key (aka "the P_Key at index 0")\&. Otherwise, it is a 16\-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key\&.
1737 The InfiniBand p\-key to use for this device\&. A value of \-1 means to use the default p\-key (aka "the p\-key at index 0")\&. Otherwise, it is a 16\-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p\-key\&. The values 0 and 0x8000 are not allowed\&.
1738 .sp
1739 With the p\-key set, the interface name is always "$parent\&.$p_key"\&. Setting "connection\&.interface\-name" to another name is not supported\&.
1740 .sp
1741 Note that kernel will internally always set the full membership bit, although the interface name does not reflect that\&. Usually the user would want to configure a full membership p\-key with 0x8000 flag set\&.
17381742 .sp
17391743 Format: int32
17401744 .RE
49844988 .PP
49854989 Properties:
49864990 .PP
4991 \fBprio\fR
4992 .RS 4
4993 Alias: prio
4994 .sp
4995 The port priority for bond active port re\-selection during failover\&. A higher number means a higher priority in selection\&. The primary port has the highest priority\&. This option is only compatible with active\-backup, balance\-tlb and balance\-alb modes\&.
4996 .sp
4997 Format: int32
4998 .RE
4999 .PP
49875000 \fBqueue\-id\fR
49885001 .RS 4
49895002 Alias: queue\-id
00 <?xml version="1.0"?>
11 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
2 <refentry id="nm-settings-nmcli"><refentryinfo><title>nm-settings-nmcli</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-nmcli</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings-nmcli</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles for nmcli</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
2 <refentry id="nm-settings-nmcli"><refentryinfo><title>nm-settings-nmcli</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-nmcli</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.42.8</refmiscinfo></refmeta><refnamediv><refname>nm-settings-nmcli</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles for nmcli</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
33 NetworkManager is based on a concept of connection profiles, sometimes referred to as
44 connections only. These connection profiles contain a network configuration. When
55 NetworkManager activates a connection profile on a network device the configuration will
250250 Format: byte array</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.mtu">mtu</option></term><listitem><para>
251251 Alias: mtu</para><para>If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.</para><para>
252252 Format: uint32</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.p-key">p-key</option></term><listitem><para>
253 Alias: p-key</para><para>The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.</para><para>
253 Alias: p-key</para><para>The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka "the p-key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p-key. The values 0 and 0x8000 are not allowed.</para><para>With the p-key set, the interface name is always "$parent.$p_key". Setting "connection.interface-name" to another name is not supported.</para><para>Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set.</para><para>
254254 Format: int32</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.parent">parent</option></term><listitem><para>
255255 Alias: parent</para><para>The interface name of the parent device of this device. Normally NULL, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".</para><para>
256256 Format: string</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.transport-mode">transport-mode</option></term><listitem><para>
11991199 Alias: short-addr</para><para>Short IEEE 802.15.4 address to be used within a restricted environment.</para><para>
12001200 Format: uint32</para></listitem></varlistentry></variablelist></para></refsect2><refsect2><title>bond-port setting</title><para>Bond Port Settings.</para><para>
12011201 Properties:
1202 <variablelist><varlistentry><term><option id="nm-settings-nmcli.property.bond-port.queue-id">queue-id</option></term><listitem><para>
1202 <variablelist><varlistentry><term><option id="nm-settings-nmcli.property.bond-port.prio">prio</option></term><listitem><para>
1203 Alias: prio</para><para>The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes.</para><para>
1204 Format: int32</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.bond-port.queue-id">queue-id</option></term><listitem><para>
12031205 Alias: queue-id</para><para>The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.</para><para>
12041206 Format: uint32</para></listitem></varlistentry></variablelist></para></refsect2><refsect2><title>hostname setting</title><para>Hostname settings.</para><para>
12051207 Properties:
11 .\" Title: nmcli-examples
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: Examples
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.42\&.6" "Examples"
9 .TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.42\&.8" "Examples"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: nmcli
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: General Commands Manual
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NMCLI" "1" "" "NetworkManager 1\&.42\&.6" "General Commands Manual"
9 .TH "NMCLI" "1" "" "NetworkManager 1\&.42\&.8" "General Commands Manual"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
11 .\" Title: nmtui
22 .\" Author:
33 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
4 .\" Date: 04/20/2023
4 .\" Date: 06/28/2023
55 .\" Manual: General Commands Manual
6 .\" Source: NetworkManager 1.42.6
6 .\" Source: NetworkManager 1.42.8
77 .\" Language: English
88 .\"
9 .TH "NMTUI" "1" "" "NetworkManager 1\&.42\&.6" "General Commands Manual"
9 .TH "NMTUI" "1" "" "NetworkManager 1\&.42\&.8" "General Commands Manual"
1010 .\" -----------------------------------------------------------------
1111 .\" * Define some portability stuff
1212 .\" -----------------------------------------------------------------
55 # - add corresponding NM_VERSION_x_y_z macros in
66 # "src/libnm-core-public/nm-version-macros.h.in"
77 # - update number in configure.ac
8 version: '1.42.6',
8 version: '1.42.8',
99 license: 'GPL2+',
1010 default_options: [
1111 'buildtype=debugoptimized',
559559
560560 # pppd
561561 enable_ppp = get_option('ppp')
562 NM_PPP_VERSION_2_5_OR_NEWER = 0
562563 if enable_ppp
563 assert(cc.has_header('pppd/pppd.h'), 'couldn\'t find pppd.h. pppd development headers are required')
564 pppd_dep = dependency('pppd', required: false)
565 if (pppd_dep.found())
566 pppd_version = pppd_dep.version()
567 NM_PPP_VERSION_2_5_OR_NEWER = 1
568 else
569 assert(cc.has_header('pppd/pppd.h'), 'couldn\'t find pppd.h. pppd development headers are required')
570 pppd_version = '2.4.9'
571 endif
564572
565573 pppd_path = get_option('pppd')
566574 if pppd_path == ''
573581
574582 pppd_plugin_dir = get_option('pppd_plugin_dir')
575583 if pppd_plugin_dir == ''
576 pppd_plugin_dir = join_paths(nm_libdir, 'pppd', '2.4.5')
584 pppd_plugin_dir = join_paths(nm_libdir, 'pppd', pppd_version)
577585 endif
578586 endif
579587 config_h.set10('WITH_PPP', enable_ppp)
588 config_h.set10('NM_PPP_VERSION_2_5_OR_NEWER', NM_PPP_VERSION_2_5_OR_NEWER)
580589
581590 # ModemManager1 with libmm-glib
582591 enable_modem_manager = get_option('modem_manager')
55 #, fuzzy
66 msgid ""
77 msgstr ""
8 "Project-Id-Version: NetworkManager 1.42.6\n"
8 "Project-Id-Version: NetworkManager 1.42.8\n"
99 "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/NetworkManager/"
1010 "NetworkManager/issues\n"
11 "POT-Creation-Date: 2023-04-20 08:45+0200\n"
11 "POT-Creation-Date: 2023-06-28 13:25+0200\n"
1212 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414 "Language-Team: LANGUAGE <LL@li.org>\n"
171171 msgstr ""
172172
173173 #: src/core/devices/adsl/nm-device-adsl.c:115
174 #: src/libnmc-setting/nm-meta-setting-desc.c:8406
174 #: src/libnmc-setting/nm-meta-setting-desc.c:8412
175175 msgid "ADSL connection"
176176 msgstr ""
177177
248248 msgstr ""
249249
250250 #: src/core/devices/nm-device-ethernet.c:1638
251 #: src/libnmc-setting/nm-meta-setting-desc.c:8446
251 #: src/libnmc-setting/nm-meta-setting-desc.c:8452
252252 msgid "Veth connection"
253253 msgstr ""
254254
261261 msgstr ""
262262
263263 #: src/core/devices/nm-device-infiniband.c:157
264 #: src/libnmc-setting/nm-meta-setting-desc.c:8420
264 #: src/libnmc-setting/nm-meta-setting-desc.c:8426
265265 msgid "InfiniBand connection"
266266 msgstr ""
267267
282282 msgstr ""
283283
284284 #: src/core/devices/nm-device-vlan.c:377
285 #: src/libnmc-setting/nm-meta-setting-desc.c:8447
285 #: src/libnmc-setting/nm-meta-setting-desc.c:8453
286286 msgid "VLAN connection"
287287 msgstr ""
288288
289289 #: src/core/devices/nm-device-vrf.c:182
290 #: src/libnmc-setting/nm-meta-setting-desc.c:8449
290 #: src/libnmc-setting/nm-meta-setting-desc.c:8455
291291 msgid "VRF connection"
292292 msgstr ""
293293
294294 #: src/core/devices/nm-device-vxlan.c:382
295 #: src/libnmc-setting/nm-meta-setting-desc.c:8450
295 #: src/libnmc-setting/nm-meta-setting-desc.c:8456
296296 msgid "VXLAN connection"
297297 msgstr ""
298298
597597 msgid "Show NetworkManager options"
598598 msgstr ""
599599
600 #: src/core/nm-manager.c:6185 src/libnmc-setting/nm-meta-setting-desc.c:8448
600 #: src/core/nm-manager.c:6185 src/libnmc-setting/nm-meta-setting-desc.c:8454
601601 msgid "VPN connection"
602602 msgstr ""
603603
604 #: src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5613
604 #: src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5636
605605 #: src/libnm-client-impl/nm-device.c:1780
606 #: src/libnm-core-impl/nm-connection.c:3190 src/nmtui/nm-editor-utils.c:196
606 #: src/libnm-core-impl/nm-connection.c:3213 src/nmtui/nm-editor-utils.c:196
607607 msgid "Bond"
608608 msgstr ""
609609
610 #: src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5684
610 #: src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:5707
611611 #: src/libnm-client-impl/nm-device.c:1782
612 #: src/libnm-core-impl/nm-connection.c:3192 src/nmtui/nm-editor-utils.c:214
612 #: src/libnm-core-impl/nm-connection.c:3215 src/nmtui/nm-editor-utils.c:214
613613 msgid "Team"
614614 msgstr ""
615615
616 #: src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:6021
616 #: src/core/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c:6044
617617 #: src/libnm-client-impl/nm-device.c:1784
618 #: src/libnm-core-impl/nm-connection.c:3194 src/nmtui/nm-editor-utils.c:205
618 #: src/libnm-core-impl/nm-connection.c:3217 src/nmtui/nm-editor-utils.c:205
619619 msgid "Bridge"
620620 msgstr ""
621621
622 #: src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c:8982
622 #: src/core/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh.c:9021
623623 #: src/libnm-core-impl/nm-team-utils.c:2391
624624 msgid "invalid json"
625625 msgstr ""
893893 msgstr ""
894894
895895 #: src/libnm-client-impl/nm-device.c:1778
896 #: src/libnm-core-impl/nm-connection.c:3198 src/nmtui/nm-editor-utils.c:169
896 #: src/libnm-core-impl/nm-connection.c:3221 src/nmtui/nm-editor-utils.c:169
897897 msgid "InfiniBand"
898898 msgstr ""
899899
900900 #: src/libnm-client-impl/nm-device.c:1786
901 #: src/libnm-core-impl/nm-connection.c:3196 src/nmtui/nm-editor-utils.c:223
901 #: src/libnm-core-impl/nm-connection.c:3219 src/nmtui/nm-editor-utils.c:223
902902 #: src/nmtui/nmt-page-vlan.c:57
903903 msgid "VLAN"
904904 msgstr ""
949949 msgstr ""
950950
951951 #: src/libnm-client-impl/nm-device.c:1810
952 #: src/libnm-core-impl/nm-connection.c:3204 src/nmtui/nm-editor-utils.c:271
952 #: src/libnm-core-impl/nm-connection.c:3227 src/nmtui/nm-editor-utils.c:271
953953 #: src/nmtui/nmt-page-wireguard.c:57
954954 msgid "WireGuard"
955955 msgstr ""
11381138 msgid "has duplicate UUIDs"
11391139 msgstr ""
11401140
1141 #: src/libnm-core-impl/nm-connection.c:1793
1141 #: src/libnm-core-impl/nm-connection.c:1816
11421142 msgid "setting not found"
11431143 msgstr ""
11441144
1145 #: src/libnm-core-impl/nm-connection.c:1847
1146 #: src/libnm-core-impl/nm-connection.c:1872
1147 #: src/libnm-core-impl/nm-connection.c:1897
1145 #: src/libnm-core-impl/nm-connection.c:1870
1146 #: src/libnm-core-impl/nm-connection.c:1895
1147 #: src/libnm-core-impl/nm-connection.c:1920
11481148 msgid "setting is required for non-slave connections"
11491149 msgstr ""
11501150
1151 #: src/libnm-core-impl/nm-connection.c:1860
1152 #: src/libnm-core-impl/nm-connection.c:1885
1153 #: src/libnm-core-impl/nm-connection.c:1910
1151 #: src/libnm-core-impl/nm-connection.c:1883
1152 #: src/libnm-core-impl/nm-connection.c:1908
1153 #: src/libnm-core-impl/nm-connection.c:1933
11541154 msgid "setting not allowed in slave connection"
11551155 msgstr ""
11561156
1157 #: src/libnm-core-impl/nm-connection.c:2021
1157 #: src/libnm-core-impl/nm-connection.c:2044
11581158 msgid "Unexpected failure to normalize the connection"
11591159 msgstr ""
11601160
1161 #: src/libnm-core-impl/nm-connection.c:2082
1161 #: src/libnm-core-impl/nm-connection.c:2105
11621162 msgid "Unexpected failure to verify the connection"
11631163 msgstr ""
11641164
1165 #: src/libnm-core-impl/nm-connection.c:2119
1165 #: src/libnm-core-impl/nm-connection.c:2142
11661166 #, c-format
11671167 msgid "unexpected uuid %s instead of %s"
11681168 msgstr ""
11691169
1170 #: src/libnm-core-impl/nm-connection.c:3049
1170 #: src/libnm-core-impl/nm-connection.c:3072
11711171 #: src/libnm-core-impl/nm-setting-8021x.c:2623
11721172 #: src/libnm-core-impl/nm-setting-8021x.c:2660
11731173 #: src/libnm-core-impl/nm-setting-8021x.c:2678
11931193 msgid "property is missing"
11941194 msgstr ""
11951195
1196 #: src/libnm-core-impl/nm-connection.c:3202
1196 #: src/libnm-core-impl/nm-connection.c:3225
11971197 msgid "IP Tunnel"
11981198 msgstr ""
11991199
1200 #: src/libnm-core-impl/nm-connection.c:3206
1200 #: src/libnm-core-impl/nm-connection.c:3229
12011201 msgid "TUN/TAP"
12021202 msgstr ""
12031203
15501550
15511551 #: src/libnm-core-impl/nm-setting-8021x.c:2825
15521552 #: src/libnm-core-impl/nm-setting-bluetooth.c:110
1553 #: src/libnm-core-impl/nm-setting-infiniband.c:191
1554 #: src/libnm-core-impl/nm-setting-infiniband.c:203
1553 #: src/libnm-core-impl/nm-setting-infiniband.c:204
1554 #: src/libnm-core-impl/nm-setting-infiniband.c:216
15551555 #: src/libnm-core-impl/nm-setting-ip4-config.c:234
15561556 #: src/libnm-core-impl/nm-setting-ip4-config.c:250
15571557 #: src/libnm-core-impl/nm-setting-ip6-config.c:281
16101610 msgid "'%s' connection requires '%s' setting"
16111611 msgstr ""
16121612
1613 #: src/libnm-core-impl/nm-setting-bond-port.c:82
1613 #: src/libnm-core-impl/nm-setting-bond-port.c:99
16141614 #: src/libnm-core-impl/nm-setting-bridge-port.c:328
16151615 #: src/libnm-core-impl/nm-setting-ovs-bridge.c:151
16161616 #: src/libnm-core-impl/nm-setting-ovs-interface.c:306
16191619 msgid "missing setting"
16201620 msgstr ""
16211621
1622 #: src/libnm-core-impl/nm-setting-bond-port.c:92
1622 #: src/libnm-core-impl/nm-setting-bond-port.c:109
16231623 #: src/libnm-core-impl/nm-setting-bridge-port.c:338
16241624 #: src/libnm-core-impl/nm-setting-ovs-interface.c:329
16251625 #: src/libnm-core-impl/nm-setting-ovs-port.c:434
19441944 msgid "can't be enabled when manual configuration is present"
19451945 msgstr ""
19461946
1947 #: src/libnm-core-impl/nm-setting-infiniband.c:229
1947 #: src/libnm-core-impl/nm-setting-infiniband.c:242
19481948 msgid "Must specify a P_Key if specifying parent"
19491949 msgstr ""
19501950
1951 #: src/libnm-core-impl/nm-setting-infiniband.c:240
1951 #: src/libnm-core-impl/nm-setting-infiniband.c:253
19521952 msgid "InfiniBand P_Key connection did not specify parent interface name"
19531953 msgstr ""
19541954
1955 #: src/libnm-core-impl/nm-setting-infiniband.c:248
1955 #: src/libnm-core-impl/nm-setting-infiniband.c:261
19561956 msgid "the values 0 and 0x8000 are not allowed"
19571957 msgstr ""
19581958
1959 #: src/libnm-core-impl/nm-setting-infiniband.c:274
1959 #: src/libnm-core-impl/nm-setting-infiniband.c:289
19601960 #, c-format
19611961 msgid ""
19621962 "interface name of software infiniband device must be '%s' or unset (instead "
19631963 "it is '%s')"
19641964 msgstr ""
19651965
1966 #: src/libnm-core-impl/nm-setting-infiniband.c:282
1966 #: src/libnm-core-impl/nm-setting-infiniband.c:297
19671967 #, c-format
19681968 msgid ""
19691969 "interface name of software infiniband device with MAC address must be unset "
19701970 "(instead it is '%s')"
19711971 msgstr ""
19721972
1973 #: src/libnm-core-impl/nm-setting-infiniband.c:310
1973 #: src/libnm-core-impl/nm-setting-infiniband.c:323
19741974 #, c-format
19751975 msgid "mtu can be at most %u but it is %u"
19761976 msgstr ""
44244424 msgstr ""
44254425
44264426 #: src/libnmc-base/nm-secret-agent-simple.c:931
4427 #: src/libnmc-setting/nm-meta-setting-desc.c:6679
4427 #: src/libnmc-setting/nm-meta-setting-desc.c:6685
44284428 msgid "MKA CAK"
44294429 msgstr ""
44304430
50055005 msgstr ""
50065006
50075007 #: src/libnmc-setting/nm-meta-setting-desc.c:5141
5008 #: src/libnmc-setting/nm-meta-setting-desc.c:5437
5009 #: src/libnmc-setting/nm-meta-setting-desc.c:5927
5010 #: src/libnmc-setting/nm-meta-setting-desc.c:7034
5008 #: src/libnmc-setting/nm-meta-setting-desc.c:5443
5009 #: src/libnmc-setting/nm-meta-setting-desc.c:5933
5010 #: src/libnmc-setting/nm-meta-setting-desc.c:7040
50115011 msgid "Password [none]"
50125012 msgstr ""
50135013
50205020 msgid "Queue ID"
50215021 msgstr ""
50225022
5023 #: src/libnmc-setting/nm-meta-setting-desc.c:5247
5024 #: src/libnmc-setting/nm-meta-setting-desc.c:6001
5025 #: src/libnmc-setting/nm-meta-setting-desc.c:7760
5026 #: src/libnmc-setting/nm-meta-setting-desc.c:7798
5027 #: src/libnmc-setting/nm-meta-setting-desc.c:7983
5028 #: src/libnmc-setting/nm-meta-setting-desc.c:8216
5023 #: src/libnmc-setting/nm-meta-setting-desc.c:5241
5024 msgid "Port Priority"
5025 msgstr ""
5026
5027 #: src/libnmc-setting/nm-meta-setting-desc.c:5253
5028 #: src/libnmc-setting/nm-meta-setting-desc.c:6007
5029 #: src/libnmc-setting/nm-meta-setting-desc.c:7766
5030 #: src/libnmc-setting/nm-meta-setting-desc.c:7804
5031 #: src/libnmc-setting/nm-meta-setting-desc.c:7989
5032 #: src/libnmc-setting/nm-meta-setting-desc.c:8222
50295033 msgid "MAC [none]"
50305034 msgstr ""
50315035
5032 #: src/libnmc-setting/nm-meta-setting-desc.c:5253
5036 #: src/libnmc-setting/nm-meta-setting-desc.c:5259
50335037 msgid "Enable STP"
50345038 msgstr ""
50355039
5036 #: src/libnmc-setting/nm-meta-setting-desc.c:5259
5040 #: src/libnmc-setting/nm-meta-setting-desc.c:5265
50375041 msgid "STP priority"
50385042 msgstr ""
50395043
5040 #: src/libnmc-setting/nm-meta-setting-desc.c:5265
5044 #: src/libnmc-setting/nm-meta-setting-desc.c:5271
50415045 #: src/nmtui/nmt-page-bridge.c:120
50425046 msgid "Forward delay"
50435047 msgstr ""
50445048
5045 #: src/libnmc-setting/nm-meta-setting-desc.c:5271
5049 #: src/libnmc-setting/nm-meta-setting-desc.c:5277
50465050 #: src/nmtui/nmt-page-bridge.c:134
50475051 msgid "Hello time"
50485052 msgstr ""
50495053
5050 #: src/libnmc-setting/nm-meta-setting-desc.c:5277
5054 #: src/libnmc-setting/nm-meta-setting-desc.c:5283
50515055 #: src/nmtui/nmt-page-bridge.c:148
50525056 msgid "Max age"
50535057 msgstr ""
50545058
5055 #: src/libnmc-setting/nm-meta-setting-desc.c:5283
5059 #: src/libnmc-setting/nm-meta-setting-desc.c:5289
50565060 msgid "MAC address ageing time"
50575061 msgstr ""
50585062
5059 #: src/libnmc-setting/nm-meta-setting-desc.c:5293
5063 #: src/libnmc-setting/nm-meta-setting-desc.c:5299
50605064 #: src/nmtui/nmt-page-bridge.c:156
50615065 msgid "Group forward mask"
50625066 msgstr ""
50635067
5064 #: src/libnmc-setting/nm-meta-setting-desc.c:5335
5068 #: src/libnmc-setting/nm-meta-setting-desc.c:5341
50655069 #: src/nmtui/nmt-page-bridge.c:79
50665070 msgid "Enable IGMP snooping"
50675071 msgstr ""
50685072
5069 #: src/libnmc-setting/nm-meta-setting-desc.c:5393
5073 #: src/libnmc-setting/nm-meta-setting-desc.c:5399
50705074 msgid "Bridge port priority"
50715075 msgstr ""
50725076
5073 #: src/libnmc-setting/nm-meta-setting-desc.c:5399
5077 #: src/libnmc-setting/nm-meta-setting-desc.c:5405
50745078 msgid "Bridge port STP path cost"
50755079 msgstr ""
50765080
5077 #: src/libnmc-setting/nm-meta-setting-desc.c:5405
5081 #: src/libnmc-setting/nm-meta-setting-desc.c:5411
50785082 msgid "Hairpin"
50795083 msgstr ""
50805084
5081 #: src/libnmc-setting/nm-meta-setting-desc.c:5431
5082 #: src/libnmc-setting/nm-meta-setting-desc.c:5921
5083 #: src/libnmc-setting/nm-meta-setting-desc.c:7607
5085 #: src/libnmc-setting/nm-meta-setting-desc.c:5437
5086 #: src/libnmc-setting/nm-meta-setting-desc.c:5927
5087 #: src/libnmc-setting/nm-meta-setting-desc.c:7613
50845088 msgid "Username [none]"
50855089 msgstr ""
50865090
5087 #: src/libnmc-setting/nm-meta-setting-desc.c:5536
5091 #: src/libnmc-setting/nm-meta-setting-desc.c:5542
50885092 msgid ""
50895093 "Enter a list of user permissions. This is a list of user names formatted "
50905094 "as:\n"
50945098 "Example: alice bob charlie\n"
50955099 msgstr ""
50965100
5097 #: src/libnmc-setting/nm-meta-setting-desc.c:5589
5101 #: src/libnmc-setting/nm-meta-setting-desc.c:5595
50985102 msgid ""
50995103 "Enter secondary connections that should be activated when this connection "
51005104 "is\n"
51075111 "Example: private-openvpn, fe6ba5d8-c2fc-4aae-b2e3-97efddd8d9a7\n"
51085112 msgstr ""
51095113
5110 #: src/libnmc-setting/nm-meta-setting-desc.c:5612
5114 #: src/libnmc-setting/nm-meta-setting-desc.c:5618
51115115 msgid ""
51125116 "Enter a value which indicates whether the connection is subject to a data\n"
51135117 "quota, usage costs or other limitations. Accepted options are:\n"
51165120 "'unknown' to let NetworkManager choose a value using some heuristics\n"
51175121 msgstr ""
51185122
5119 #: src/libnmc-setting/nm-meta-setting-desc.c:5937
5123 #: src/libnmc-setting/nm-meta-setting-desc.c:5943
51205124 msgid "APN"
51215125 msgstr ""
51225126
5123 #: src/libnmc-setting/nm-meta-setting-desc.c:6010
5124 #: src/libnmc-setting/nm-meta-setting-desc.c:6636
5125 #: src/libnmc-setting/nm-meta-setting-desc.c:7829
5126 #: src/libnmc-setting/nm-meta-setting-desc.c:8023
5127 #: src/libnmc-setting/nm-meta-setting-desc.c:6016
5128 #: src/libnmc-setting/nm-meta-setting-desc.c:6642
5129 #: src/libnmc-setting/nm-meta-setting-desc.c:7835
5130 #: src/libnmc-setting/nm-meta-setting-desc.c:8029
51275131 #: src/nmtui/nmt-page-ethernet.c:124 src/nmtui/nmt-page-infiniband.c:81
51285132 #: src/nmtui/nmt-page-ip-tunnel.c:178 src/nmtui/nmt-page-vlan.c:100
51295133 #: src/nmtui/nmt-page-wifi.c:395 src/nmtui/nmt-page-wireguard.c:85
51305134 msgid "MTU"
51315135 msgstr ""
51325136
5133 #: src/libnmc-setting/nm-meta-setting-desc.c:6029
5137 #: src/libnmc-setting/nm-meta-setting-desc.c:6035
51345138 msgid "P_KEY [none]"
51355139 msgstr ""
51365140
5137 #: src/libnmc-setting/nm-meta-setting-desc.c:6038
5141 #: src/libnmc-setting/nm-meta-setting-desc.c:6044
51385142 msgid "Parent interface [none]"
51395143 msgstr ""
51405144
5141 #: src/libnmc-setting/nm-meta-setting-desc.c:6065
5145 #: src/libnmc-setting/nm-meta-setting-desc.c:6071
51425146 msgid ""
51435147 "Enter a list of IPv4 addresses of DNS servers.\n"
51445148 "\n"
51455149 "Example: 8.8.8.8, 8.8.4.4\n"
51465150 msgstr ""
51475151
5148 #: src/libnmc-setting/nm-meta-setting-desc.c:6112
5152 #: src/libnmc-setting/nm-meta-setting-desc.c:6118
51495153 msgid "IPv4 address (IP[/plen]) [none]"
51505154 msgstr ""
51515155
5152 #: src/libnmc-setting/nm-meta-setting-desc.c:6114
5156 #: src/libnmc-setting/nm-meta-setting-desc.c:6120
51535157 msgid ""
51545158 "Enter a list of IPv4 addresses formatted as:\n"
51555159 " ip[/prefix], ip[/prefix],...\n"
51585162 "Example: 192.168.1.5/24, 10.0.0.11/24\n"
51595163 msgstr ""
51605164
5161 #: src/libnmc-setting/nm-meta-setting-desc.c:6133
5165 #: src/libnmc-setting/nm-meta-setting-desc.c:6139
51625166 msgid "IPv4 gateway [none]"
51635167 msgstr ""
51645168
5165 #: src/libnmc-setting/nm-meta-setting-desc.c:6141
5169 #: src/libnmc-setting/nm-meta-setting-desc.c:6147
51665170 msgid ""
51675171 "Enter a list of IPv4 routes formatted as:\n"
51685172 " ip[/prefix] [next-hop] [metric],...\n"
51755179 " 10.1.2.0/24\n"
51765180 msgstr ""
51775181
5178 #: src/libnmc-setting/nm-meta-setting-desc.c:6181
5182 #: src/libnmc-setting/nm-meta-setting-desc.c:6187
51795183 msgid ""
51805184 "Enter a list of IPv4 routing rules formatted as:\n"
51815185 " priority [prio] [from [src]] [to [dst]], ,...\n"
51825186 "\n"
51835187 msgstr ""
51845188
5185 #: src/libnmc-setting/nm-meta-setting-desc.c:6317
5189 #: src/libnmc-setting/nm-meta-setting-desc.c:6323
51865190 msgid ""
51875191 "Enter a list of IPv6 addresses of DNS servers. If the IPv6 configuration "
51885192 "method is 'auto' these DNS servers are appended to those (if any) returned "
51945198 "Example: 2607:f0d0:1002:51::4, 2607:f0d0:1002:51::1\n"
51955199 msgstr ""
51965200
5197 #: src/libnmc-setting/nm-meta-setting-desc.c:6370
5201 #: src/libnmc-setting/nm-meta-setting-desc.c:6376
51985202 msgid "IPv6 address (IP[/plen]) [none]"
51995203 msgstr ""
52005204
5201 #: src/libnmc-setting/nm-meta-setting-desc.c:6372
5205 #: src/libnmc-setting/nm-meta-setting-desc.c:6378
52025206 msgid ""
52035207 "Enter a list of IPv6 addresses formatted as:\n"
52045208 " ip[/prefix], ip[/prefix],...\n"
52075211 "Example: 2607:f0d0:1002:51::4/64, 1050:0:0:0:5:600:300c:326b\n"
52085212 msgstr ""
52095213
5210 #: src/libnmc-setting/nm-meta-setting-desc.c:6391
5214 #: src/libnmc-setting/nm-meta-setting-desc.c:6397
52115215 msgid "IPv6 gateway [none]"
52125216 msgstr ""
52135217
5214 #: src/libnmc-setting/nm-meta-setting-desc.c:6399
5218 #: src/libnmc-setting/nm-meta-setting-desc.c:6405
52155219 msgid ""
52165220 "Enter a list of IPv6 routes formatted as:\n"
52175221 " ip[/prefix] [next-hop] [metric],...\n"
52255229 " abbe::/64 55\n"
52265230 msgstr ""
52275231
5228 #: src/libnmc-setting/nm-meta-setting-desc.c:6439
5232 #: src/libnmc-setting/nm-meta-setting-desc.c:6445
52295233 msgid ""
52305234 "Enter a list of IPv6 routing rules formatted as:\n"
52315235 " priority [prio] [from [src]] [to [dst]], ,...\n"
52325236 "\n"
52335237 msgstr ""
52345238
5235 #: src/libnmc-setting/nm-meta-setting-desc.c:6573
5236 #: src/libnmc-setting/nm-meta-setting-desc.c:7660
5239 #: src/libnmc-setting/nm-meta-setting-desc.c:6579
5240 #: src/libnmc-setting/nm-meta-setting-desc.c:7666
52375241 msgid "Parent device [none]"
52385242 msgstr ""
52395243
5240 #: src/libnmc-setting/nm-meta-setting-desc.c:6579
5244 #: src/libnmc-setting/nm-meta-setting-desc.c:6585
52415245 msgid "Local endpoint [none]"
52425246 msgstr ""
52435247
5244 #: src/libnmc-setting/nm-meta-setting-desc.c:6586
5245 #: src/libnmc-setting/nm-meta-setting-desc.c:7679
5248 #: src/libnmc-setting/nm-meta-setting-desc.c:6592
5249 #: src/libnmc-setting/nm-meta-setting-desc.c:7685
52465250 msgid "Remote"
52475251 msgstr ""
52485252
5249 #: src/libnmc-setting/nm-meta-setting-desc.c:6652
5253 #: src/libnmc-setting/nm-meta-setting-desc.c:6658
52505254 msgid "MACsec parent device or connection UUID"
52515255 msgstr ""
52525256
5253 #: src/libnmc-setting/nm-meta-setting-desc.c:6673
5257 #: src/libnmc-setting/nm-meta-setting-desc.c:6679
52545258 msgid "Enable encryption"
52555259 msgstr ""
52565260
5257 #: src/libnmc-setting/nm-meta-setting-desc.c:6689
5261 #: src/libnmc-setting/nm-meta-setting-desc.c:6695
52585262 msgid "MKA_CKN"
52595263 msgstr ""
52605264
5261 #: src/libnmc-setting/nm-meta-setting-desc.c:6695
5265 #: src/libnmc-setting/nm-meta-setting-desc.c:6701
52625266 #: src/nmtui/nmt-page-macsec.c:170
52635267 msgid "SCI port"
52645268 msgstr ""
52655269
5266 #: src/libnmc-setting/nm-meta-setting-desc.c:6721
5270 #: src/libnmc-setting/nm-meta-setting-desc.c:6727
52675271 msgid "MACVLAN parent device or connection UUID"
52685272 msgstr ""
52695273
5270 #: src/libnmc-setting/nm-meta-setting-desc.c:6742
5274 #: src/libnmc-setting/nm-meta-setting-desc.c:6748
52715275 msgid "Tap"
52725276 msgstr ""
52735277
5274 #: src/libnmc-setting/nm-meta-setting-desc.c:6809
5275 #: src/libnmc-setting/nm-meta-setting-desc.c:7937 src/nmtui/nmt-page-wifi.c:216
5278 #: src/libnmc-setting/nm-meta-setting-desc.c:6815
5279 #: src/libnmc-setting/nm-meta-setting-desc.c:7943 src/nmtui/nmt-page-wifi.c:216
52765280 msgid "SSID"
52775281 msgstr ""
52785282
5279 #: src/libnmc-setting/nm-meta-setting-desc.c:6818
5283 #: src/libnmc-setting/nm-meta-setting-desc.c:6824
52805284 msgid "OLPC Mesh channel"
52815285 msgstr ""
52825286
5283 #: src/libnmc-setting/nm-meta-setting-desc.c:6827
5287 #: src/libnmc-setting/nm-meta-setting-desc.c:6833
52845288 msgid "DHCP anycast MAC address [none]"
52855289 msgstr ""
52865290
5287 #: src/libnmc-setting/nm-meta-setting-desc.c:7015
5291 #: src/libnmc-setting/nm-meta-setting-desc.c:7021
52885292 msgid "PPPoE parent device"
52895293 msgstr ""
52905294
5291 #: src/libnmc-setting/nm-meta-setting-desc.c:7021
5295 #: src/libnmc-setting/nm-meta-setting-desc.c:7027
52925296 msgid "Service [none]"
52935297 msgstr ""
52945298
5295 #: src/libnmc-setting/nm-meta-setting-desc.c:7028
5299 #: src/libnmc-setting/nm-meta-setting-desc.c:7034
52965300 msgid "PPPoE username"
52975301 msgstr ""
52985302
5299 #: src/libnmc-setting/nm-meta-setting-desc.c:7064
5303 #: src/libnmc-setting/nm-meta-setting-desc.c:7070
53005304 msgid "Browser only"
53015305 msgstr ""
53025306
5303 #: src/libnmc-setting/nm-meta-setting-desc.c:7070
5307 #: src/libnmc-setting/nm-meta-setting-desc.c:7076
53045308 msgid "PAC URL"
53055309 msgstr ""
53065310
5307 #: src/libnmc-setting/nm-meta-setting-desc.c:7076
5311 #: src/libnmc-setting/nm-meta-setting-desc.c:7082
53085312 msgid "PAC script"
53095313 msgstr ""
53105314
5311 #: src/libnmc-setting/nm-meta-setting-desc.c:7200
5312 #: src/libnmc-setting/nm-meta-setting-desc.c:7388
5315 #: src/libnmc-setting/nm-meta-setting-desc.c:7206
5316 #: src/libnmc-setting/nm-meta-setting-desc.c:7394
53135317 msgid "Team JSON configuration [none]"
53145318 msgstr ""
53155319
5316 #: src/libnmc-setting/nm-meta-setting-desc.c:7491
5320 #: src/libnmc-setting/nm-meta-setting-desc.c:7497
53175321 msgid "User ID [none]"
53185322 msgstr ""
53195323
5320 #: src/libnmc-setting/nm-meta-setting-desc.c:7497
5324 #: src/libnmc-setting/nm-meta-setting-desc.c:7503
53215325 msgid "Group ID [none]"
53225326 msgstr ""
53235327
5324 #: src/libnmc-setting/nm-meta-setting-desc.c:7503
5328 #: src/libnmc-setting/nm-meta-setting-desc.c:7509
53255329 msgid "Enable PI"
53265330 msgstr ""
53275331
5328 #: src/libnmc-setting/nm-meta-setting-desc.c:7509
5332 #: src/libnmc-setting/nm-meta-setting-desc.c:7515
53295333 msgid "Enable VNET header"
53305334 msgstr ""
53315335
5332 #: src/libnmc-setting/nm-meta-setting-desc.c:7515
5336 #: src/libnmc-setting/nm-meta-setting-desc.c:7521
53335337 msgid "Enable multi queue"
53345338 msgstr ""
53355339
5336 #: src/libnmc-setting/nm-meta-setting-desc.c:7528
5340 #: src/libnmc-setting/nm-meta-setting-desc.c:7534
53375341 msgid "veth peer"
53385342 msgstr ""
53395343
5340 #: src/libnmc-setting/nm-meta-setting-desc.c:7541
5344 #: src/libnmc-setting/nm-meta-setting-desc.c:7547
53415345 msgid "VLAN parent device or connection UUID"
53425346 msgstr ""
53435347
5344 #: src/libnmc-setting/nm-meta-setting-desc.c:7548
5348 #: src/libnmc-setting/nm-meta-setting-desc.c:7554
53455349 msgid "VLAN ID (<0-4094>)"
53465350 msgstr ""
53475351
5348 #: src/libnmc-setting/nm-meta-setting-desc.c:7554
5352 #: src/libnmc-setting/nm-meta-setting-desc.c:7560
53495353 msgid "VLAN flags (<0-7>) [none]"
53505354 msgstr ""
53515355
5352 #: src/libnmc-setting/nm-meta-setting-desc.c:7569
5356 #: src/libnmc-setting/nm-meta-setting-desc.c:7575
53535357 msgid "Ingress priority maps [none]"
53545358 msgstr ""
53555359
5356 #: src/libnmc-setting/nm-meta-setting-desc.c:7579
5360 #: src/libnmc-setting/nm-meta-setting-desc.c:7585
53575361 msgid "Egress priority maps [none]"
53585362 msgstr ""
53595363
5360 #: src/libnmc-setting/nm-meta-setting-desc.c:7647
5364 #: src/libnmc-setting/nm-meta-setting-desc.c:7653
53615365 msgid "Table"
53625366 msgstr ""
53635367
5364 #: src/libnmc-setting/nm-meta-setting-desc.c:7667
5368 #: src/libnmc-setting/nm-meta-setting-desc.c:7673
53655369 msgid "VXLAN ID"
53665370 msgstr ""
53675371
5368 #: src/libnmc-setting/nm-meta-setting-desc.c:7673
5372 #: src/libnmc-setting/nm-meta-setting-desc.c:7679
53695373 msgid "Local address [none]"
53705374 msgstr ""
53715375
5372 #: src/libnmc-setting/nm-meta-setting-desc.c:7685
5376 #: src/libnmc-setting/nm-meta-setting-desc.c:7691
53735377 msgid "Minimum source port"
53745378 msgstr ""
53755379
5376 #: src/libnmc-setting/nm-meta-setting-desc.c:7691
5380 #: src/libnmc-setting/nm-meta-setting-desc.c:7697
53775381 msgid "Maximum source port"
53785382 msgstr ""
53795383
5380 #: src/libnmc-setting/nm-meta-setting-desc.c:7697
5384 #: src/libnmc-setting/nm-meta-setting-desc.c:7703
53815385 msgid "Destination port"
53825386 msgstr ""
53835387
5384 #: src/libnmc-setting/nm-meta-setting-desc.c:7737
5388 #: src/libnmc-setting/nm-meta-setting-desc.c:7743
53855389 #: src/nmtui/nmt-wireguard-peer-editor.c:78
53865390 msgid "Peer"
53875391 msgstr ""
53885392
5389 #: src/libnmc-setting/nm-meta-setting-desc.c:7767
5393 #: src/libnmc-setting/nm-meta-setting-desc.c:7773
53905394 msgid "WiMAX NSP name"
53915395 msgstr ""
53925396
5393 #: src/libnmc-setting/nm-meta-setting-desc.c:7804
5394 #: src/libnmc-setting/nm-meta-setting-desc.c:7988
5397 #: src/libnmc-setting/nm-meta-setting-desc.c:7810
5398 #: src/libnmc-setting/nm-meta-setting-desc.c:7994
53955399 msgid "Cloned MAC [none]"
53965400 msgstr ""
53975401
5398 #: src/libnmc-setting/nm-meta-setting-desc.c:7837
5402 #: src/libnmc-setting/nm-meta-setting-desc.c:7843
53995403 msgid ""
54005404 "Enter a list of subchannels (comma or space separated).\n"
54015405 "\n"
54025406 "Example: 0.0.0e20 0.0.0e21 0.0.0e22\n"
54035407 msgstr ""
54045408
5405 #: src/libnmc-setting/nm-meta-setting-desc.c:8165
5409 #: src/libnmc-setting/nm-meta-setting-desc.c:8171
54065410 msgid ""
54075411 "Enter the type of WEP keys. The accepted values are: 0 or unknown, 1 or key, "
54085412 "and 2 or passphrase.\n"
54095413 msgstr ""
54105414
5411 #: src/libnmc-setting/nm-meta-setting-desc.c:8224
5415 #: src/libnmc-setting/nm-meta-setting-desc.c:8230
54125416 msgid "Short address (<0x0000-0xffff>)"
54135417 msgstr ""
54145418
5415 #: src/libnmc-setting/nm-meta-setting-desc.c:8240
5419 #: src/libnmc-setting/nm-meta-setting-desc.c:8246
54165420 msgid "PAN Identifier (<0x0000-0xffff>)"
54175421 msgstr ""
54185422
5419 #: src/libnmc-setting/nm-meta-setting-desc.c:8255
5423 #: src/libnmc-setting/nm-meta-setting-desc.c:8261
54205424 msgid "Page (<default|0-31>)"
54215425 msgstr ""
54225426
5423 #: src/libnmc-setting/nm-meta-setting-desc.c:8269
5427 #: src/libnmc-setting/nm-meta-setting-desc.c:8275
54245428 msgid "Channel (<default|0-26>)"
54255429 msgstr ""
54265430
54275431 #. ***************************************************************************
5428 #: src/libnmc-setting/nm-meta-setting-desc.c:8404
5432 #: src/libnmc-setting/nm-meta-setting-desc.c:8410
54295433 msgid "6LOWPAN settings"
54305434 msgstr ""
54315435
5432 #: src/libnmc-setting/nm-meta-setting-desc.c:8405
5436 #: src/libnmc-setting/nm-meta-setting-desc.c:8411
54335437 msgid "802-1x settings"
54345438 msgstr ""
54355439
5436 #: src/libnmc-setting/nm-meta-setting-desc.c:8407
5440 #: src/libnmc-setting/nm-meta-setting-desc.c:8413
54375441 msgid "bluetooth connection"
54385442 msgstr ""
54395443
5440 #: src/libnmc-setting/nm-meta-setting-desc.c:8408
5444 #: src/libnmc-setting/nm-meta-setting-desc.c:8414
54415445 msgid "Bond device"
54425446 msgstr ""
54435447
5444 #: src/libnmc-setting/nm-meta-setting-desc.c:8409
5448 #: src/libnmc-setting/nm-meta-setting-desc.c:8415
54455449 msgid "Bond port"
54465450 msgstr ""
54475451
5448 #: src/libnmc-setting/nm-meta-setting-desc.c:8410
5452 #: src/libnmc-setting/nm-meta-setting-desc.c:8416
54495453 msgid "Bridge device"
54505454 msgstr ""
54515455
5452 #: src/libnmc-setting/nm-meta-setting-desc.c:8411
5456 #: src/libnmc-setting/nm-meta-setting-desc.c:8417
54535457 msgid "Bridge port"
54545458 msgstr ""
54555459
5456 #: src/libnmc-setting/nm-meta-setting-desc.c:8412
5460 #: src/libnmc-setting/nm-meta-setting-desc.c:8418
54575461 msgid "CDMA mobile broadband connection"
54585462 msgstr ""
54595463
5460 #: src/libnmc-setting/nm-meta-setting-desc.c:8413
5464 #: src/libnmc-setting/nm-meta-setting-desc.c:8419
54615465 msgid "General settings"
54625466 msgstr ""
54635467
5464 #: src/libnmc-setting/nm-meta-setting-desc.c:8414
5468 #: src/libnmc-setting/nm-meta-setting-desc.c:8420
54655469 msgid "DCB settings"
54665470 msgstr ""
54675471
5468 #: src/libnmc-setting/nm-meta-setting-desc.c:8415
5472 #: src/libnmc-setting/nm-meta-setting-desc.c:8421
54695473 msgid "Dummy settings"
54705474 msgstr ""
54715475
5472 #: src/libnmc-setting/nm-meta-setting-desc.c:8416
5476 #: src/libnmc-setting/nm-meta-setting-desc.c:8422
54735477 msgid "Ethtool settings"
54745478 msgstr ""
54755479
5476 #: src/libnmc-setting/nm-meta-setting-desc.c:8417
5480 #: src/libnmc-setting/nm-meta-setting-desc.c:8423
54775481 msgid "Generic settings"
54785482 msgstr ""
54795483
5480 #: src/libnmc-setting/nm-meta-setting-desc.c:8418
5484 #: src/libnmc-setting/nm-meta-setting-desc.c:8424
54815485 msgid "GSM mobile broadband connection"
54825486 msgstr ""
54835487
5484 #: src/libnmc-setting/nm-meta-setting-desc.c:8419
5488 #: src/libnmc-setting/nm-meta-setting-desc.c:8425
54855489 msgid "Hostname settings"
54865490 msgstr ""
54875491
5488 #: src/libnmc-setting/nm-meta-setting-desc.c:8421
5492 #: src/libnmc-setting/nm-meta-setting-desc.c:8427
54895493 msgid "IPv4 protocol"
54905494 msgstr ""
54915495
5492 #: src/libnmc-setting/nm-meta-setting-desc.c:8422
5496 #: src/libnmc-setting/nm-meta-setting-desc.c:8428
54935497 msgid "IPv6 protocol"
54945498 msgstr ""
54955499
5496 #: src/libnmc-setting/nm-meta-setting-desc.c:8423
5500 #: src/libnmc-setting/nm-meta-setting-desc.c:8429
54975501 msgid "IP-tunnel settings"
54985502 msgstr ""
54995503
5500 #: src/libnmc-setting/nm-meta-setting-desc.c:8424
5504 #: src/libnmc-setting/nm-meta-setting-desc.c:8430
55015505 msgid "Loopback settings"
55025506 msgstr ""
55035507
5504 #: src/libnmc-setting/nm-meta-setting-desc.c:8425
5508 #: src/libnmc-setting/nm-meta-setting-desc.c:8431
55055509 msgid "MACsec connection"
55065510 msgstr ""
55075511
5508 #: src/libnmc-setting/nm-meta-setting-desc.c:8426
5512 #: src/libnmc-setting/nm-meta-setting-desc.c:8432
55095513 msgid "macvlan connection"
55105514 msgstr ""
55115515
5512 #: src/libnmc-setting/nm-meta-setting-desc.c:8427
5516 #: src/libnmc-setting/nm-meta-setting-desc.c:8433
55135517 msgid "Match"
55145518 msgstr ""
55155519
5516 #: src/libnmc-setting/nm-meta-setting-desc.c:8428
5520 #: src/libnmc-setting/nm-meta-setting-desc.c:8434
55175521 msgid "OLPC Mesh connection"
55185522 msgstr ""
55195523
5520 #: src/libnmc-setting/nm-meta-setting-desc.c:8429
5524 #: src/libnmc-setting/nm-meta-setting-desc.c:8435
55215525 msgid "Open vSwitch bridge settings"
55225526 msgstr ""
55235527
5524 #: src/libnmc-setting/nm-meta-setting-desc.c:8430
5528 #: src/libnmc-setting/nm-meta-setting-desc.c:8436
55255529 msgid "Open vSwitch DPDK interface settings"
55265530 msgstr ""
55275531
5528 #: src/libnmc-setting/nm-meta-setting-desc.c:8431
5532 #: src/libnmc-setting/nm-meta-setting-desc.c:8437
55295533 msgid "OVS Other Config"
55305534 msgstr ""
55315535
5532 #: src/libnmc-setting/nm-meta-setting-desc.c:8432
5536 #: src/libnmc-setting/nm-meta-setting-desc.c:8438
55335537 msgid "OVS External IDs"
55345538 msgstr ""
55355539
5536 #: src/libnmc-setting/nm-meta-setting-desc.c:8433
5540 #: src/libnmc-setting/nm-meta-setting-desc.c:8439
55375541 msgid "Open vSwitch interface settings"
55385542 msgstr ""
55395543
5540 #: src/libnmc-setting/nm-meta-setting-desc.c:8434
5544 #: src/libnmc-setting/nm-meta-setting-desc.c:8440
55415545 msgid "Open vSwitch patch interface settings"
55425546 msgstr ""
55435547
5544 #: src/libnmc-setting/nm-meta-setting-desc.c:8435
5548 #: src/libnmc-setting/nm-meta-setting-desc.c:8441
55455549 msgid "Open vSwitch port settings"
55465550 msgstr ""
55475551
5548 #: src/libnmc-setting/nm-meta-setting-desc.c:8436
5552 #: src/libnmc-setting/nm-meta-setting-desc.c:8442
55495553 msgid "PPP settings"
55505554 msgstr ""
55515555
5552 #: src/libnmc-setting/nm-meta-setting-desc.c:8437
5556 #: src/libnmc-setting/nm-meta-setting-desc.c:8443
55535557 msgid "PPPoE"
55545558 msgstr ""
55555559
5556 #: src/libnmc-setting/nm-meta-setting-desc.c:8438
5560 #: src/libnmc-setting/nm-meta-setting-desc.c:8444
55575561 msgid "Proxy"
55585562 msgstr ""
55595563
5560 #: src/libnmc-setting/nm-meta-setting-desc.c:8439
5564 #: src/libnmc-setting/nm-meta-setting-desc.c:8445
55615565 msgid "Serial settings"
55625566 msgstr ""
55635567
5564 #: src/libnmc-setting/nm-meta-setting-desc.c:8440
5568 #: src/libnmc-setting/nm-meta-setting-desc.c:8446
55655569 msgid "SR-IOV settings"
55665570 msgstr ""
55675571
5568 #: src/libnmc-setting/nm-meta-setting-desc.c:8441
5572 #: src/libnmc-setting/nm-meta-setting-desc.c:8447
55695573 msgid "Traffic controls"
55705574 msgstr ""
55715575
5572 #: src/libnmc-setting/nm-meta-setting-desc.c:8442
5576 #: src/libnmc-setting/nm-meta-setting-desc.c:8448
55735577 msgid "Team device"
55745578 msgstr ""
55755579
5576 #: src/libnmc-setting/nm-meta-setting-desc.c:8443
5580 #: src/libnmc-setting/nm-meta-setting-desc.c:8449
55775581 msgid "Team port"
55785582 msgstr ""
55795583
5580 #: src/libnmc-setting/nm-meta-setting-desc.c:8444
5584 #: src/libnmc-setting/nm-meta-setting-desc.c:8450
55815585 msgid "Tun device"
55825586 msgstr ""
55835587
5584 #: src/libnmc-setting/nm-meta-setting-desc.c:8445
5588 #: src/libnmc-setting/nm-meta-setting-desc.c:8451
55855589 msgid "User settings"
55865590 msgstr ""
55875591
5588 #: src/libnmc-setting/nm-meta-setting-desc.c:8451
5592 #: src/libnmc-setting/nm-meta-setting-desc.c:8457
55895593 msgid "Wi-Fi P2P connection"
55905594 msgstr ""
55915595
5592 #: src/libnmc-setting/nm-meta-setting-desc.c:8452
5596 #: src/libnmc-setting/nm-meta-setting-desc.c:8458
55935597 msgid "WiMAX connection"
55945598 msgstr ""
55955599
5596 #: src/libnmc-setting/nm-meta-setting-desc.c:8453
5600 #: src/libnmc-setting/nm-meta-setting-desc.c:8459
55975601 msgid "Wired Ethernet"
55985602 msgstr ""
55995603
5600 #: src/libnmc-setting/nm-meta-setting-desc.c:8454
5604 #: src/libnmc-setting/nm-meta-setting-desc.c:8460
56015605 msgid "WireGuard VPN settings"
56025606 msgstr ""
56035607
5604 #: src/libnmc-setting/nm-meta-setting-desc.c:8455
5608 #: src/libnmc-setting/nm-meta-setting-desc.c:8461
56055609 msgid "Wi-Fi connection"
56065610 msgstr ""
56075611
5608 #: src/libnmc-setting/nm-meta-setting-desc.c:8456
5612 #: src/libnmc-setting/nm-meta-setting-desc.c:8462
56095613 msgid "Wi-Fi security settings"
56105614 msgstr ""
56115615
5612 #: src/libnmc-setting/nm-meta-setting-desc.c:8457
5616 #: src/libnmc-setting/nm-meta-setting-desc.c:8463
56135617 msgid "WPAN settings"
56145618 msgstr ""
56155619
5616 #: src/libnmc-setting/nm-meta-setting-desc.c:8870
5620 #: src/libnmc-setting/nm-meta-setting-desc.c:8876
56175621 msgid "name"
56185622 msgstr ""
56195623
67806784
67816785 #: src/libnmc-setting/settings-docs.h.in:156
67826786 msgid ""
6783 "The InfiniBand P_Key to use for this device. A value of -1 means to use the "
6784 "default P_Key (aka \"the P_Key at index 0\"). Otherwise, it is a 16-bit "
6785 "unsigned integer, whose high bit is set if it is a \"full membership\" P_Key."
6787 "The InfiniBand p-key to use for this device. A value of -1 means to use the "
6788 "default p-key (aka \"the p-key at index 0\"). Otherwise, it is a 16-bit "
6789 "unsigned integer, whose high bit 0x8000 is set if it is a \"full "
6790 "membership\" p-key. The values 0 and 0x8000 are not allowed. With the p-key "
6791 "set, the interface name is always \"$parent.$p_key\". Setting \"connection."
6792 "interface-name\" to another name is not supported. Note that kernel will "
6793 "internally always set the full membership bit, although the interface name "
6794 "does not reflect that. Usually the user would want to configure a full "
6795 "membership p-key with 0x8000 flag set."
67866796 msgstr ""
67876797
67886798 #: src/libnmc-setting/settings-docs.h.in:157
82948304
82958305 #: src/libnmc-setting/settings-docs.h.in:380
82968306 #: src/libnmc-setting/settings-docs.h.in:407
8297 #: src/libnmc-setting/settings-docs.h.in:444
8307 #: src/libnmc-setting/settings-docs.h.in:445
82988308 msgid ""
82998309 "If non-zero, only transmit packets of the specified size or smaller, "
83008310 "breaking larger packets up into multiple Ethernet frames."
87688778
87698779 #: src/libnmc-setting/settings-docs.h.in:439
87708780 msgid ""
8781 "The port priority for bond active port re-selection during failover. A "
8782 "higher number means a higher priority in selection. The primary port has the "
8783 "highest priority. This option is only compatible with active-backup, balance-"
8784 "tlb and balance-alb modes."
8785 msgstr ""
8786
8787 #: src/libnmc-setting/settings-docs.h.in:440
8788 msgid ""
87718789 "The queue ID of this bond port. The maximum value of queue ID is the number "
87728790 "of TX queues currently active in device."
87738791 msgstr ""
87748792
8775 #: src/libnmc-setting/settings-docs.h.in:440
8793 #: src/libnmc-setting/settings-docs.h.in:441
87768794 msgid ""
87778795 "Whether the system hostname can be determined from DHCP on this connection. "
87788796 "When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is "
87808798 "NetworkManager assumes the value to be NM_TERNARY_TRUE (1)."
87818799 msgstr ""
87828800
8783 #: src/libnmc-setting/settings-docs.h.in:441
8801 #: src/libnmc-setting/settings-docs.h.in:442
87848802 msgid ""
87858803 "Whether the system hostname can be determined from reverse DNS lookup of "
87868804 "addresses on this device. When set to NM_TERNARY_DEFAULT (-1), the value "
87898807 "NM_TERNARY_TRUE (1)."
87908808 msgstr ""
87918809
8792 #: src/libnmc-setting/settings-docs.h.in:442
8810 #: src/libnmc-setting/settings-docs.h.in:443
87938811 msgid ""
87948812 "If set to NM_TERNARY_TRUE (1), NetworkManager attempts to get the hostname "
87958813 "via DHCPv4/DHCPv6 or reverse DNS lookup on this device only when the device "
88018819 "NM_TERNARY_FALSE (0)."
88028820 msgstr ""
88038821
8804 #: src/libnmc-setting/settings-docs.h.in:443
8822 #: src/libnmc-setting/settings-docs.h.in:444
88058823 msgid ""
88068824 "The relative priority of this connection to determine the system hostname. A "
88078825 "lower numerical value is better (higher priority). A connection with higher "
88158833 "hostname."
88168834 msgstr ""
88178835
8818 #: src/libnmc-setting/settings-docs.h.in:445
8836 #: src/libnmc-setting/settings-docs.h.in:446
88198837 msgid "A dictionary of key/value pairs with external-ids for OVS."
88208838 msgstr ""
88218839
8822 #: src/libnmc-setting/settings-docs.h.in:446
8840 #: src/libnmc-setting/settings-docs.h.in:447
88238841 msgid ""
88248842 "A dictionary of key/value pairs with other_config settings for OVS. See also "
88258843 "\"other_config\" in the \"ovs-vswitchd.conf.db\" manual for the keys that "
88268844 "OVS supports."
88278845 msgstr ""
88288846
8829 #: src/libnmc-setting/settings-docs.h.in:447
8847 #: src/libnmc-setting/settings-docs.h.in:448
88308848 msgid ""
88318849 "This property specifies the peer interface name of the veth. This property "
88328850 "is mandatory."
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
226226 NMConnection *connection,
227227 GError **error)
228228 {
229 NMSettingBondPort *s_port;
230 int ifindex_port = nm_device_get_ifindex(port);
231 NMConnection *applied_connection = nm_device_get_applied_connection(self);
232 uint queue_id = NM_BOND_PORT_QUEUE_ID_DEF;
233 gs_free char *queue_id_str = NULL;
229 NMSettingBondPort *s_port;
230 int ifindex_port = nm_device_get_ifindex(port);
231 NMConnection *applied_connection = nm_device_get_applied_connection(self);
232 const NMPlatformLink *pllink;
234233
235234 g_return_val_if_fail(ifindex_port > 0, FALSE);
236235
237236 s_port = _nm_connection_ensure_setting(connection, NM_TYPE_SETTING_BOND_PORT);
238
239 queue_id_str =
240 nm_platform_sysctl_slave_get_option(nm_device_get_platform(self), ifindex_port, "queue_id");
241 if (queue_id_str) {
242 queue_id =
243 _nm_utils_ascii_str_to_int64(queue_id_str, 10, 0, 65535, NM_BOND_PORT_QUEUE_ID_DEF);
244 g_object_set(s_port, NM_SETTING_BOND_PORT_QUEUE_ID, queue_id, NULL);
245 } else
246 _LOGW(LOGD_BOND, "failed to read bond port setting '%s'", NM_SETTING_BOND_PORT_QUEUE_ID);
237 pllink = nm_platform_link_get(nm_device_get_platform(port), ifindex_port);
238
239 if (pllink && pllink->port_kind == NM_PORT_KIND_BOND)
240 g_object_set(s_port,
241 NM_SETTING_BOND_PORT_QUEUE_ID,
242 pllink->port_data.bond.queue_id,
243 NM_SETTING_BOND_PORT_PRIO,
244 pllink->port_data.bond.prio,
245 NULL);
247246
248247 g_object_set(nm_connection_get_setting_connection(connection),
249248 NM_SETTING_CONNECTION_MASTER,
599598 static void
600599 commit_port_options(NMDevice *bond_device, NMDevice *port, NMSettingBondPort *s_port)
601600 {
602 char queue_id_str[IFNAMSIZ + NM_STRLEN(":") + 5 + 100];
603
604 /*
605 * The queue-id of bond port is read only, we should modify bond interface using:
606 * echo "eth1:2" > /sys/class/net/bond0/bonding/queue_id
607 * Kernel allows parital editing, so no need to care about other bond ports.
608 */
609 g_snprintf(queue_id_str,
610 sizeof(queue_id_str),
611 "%s:%" G_GUINT32_FORMAT,
612 nm_device_get_iface(port),
613 s_port ? nm_setting_bond_port_get_queue_id(s_port) : NM_BOND_PORT_QUEUE_ID_DEF);
614
615 nm_platform_sysctl_master_set_option(nm_device_get_platform(bond_device),
616 nm_device_get_ifindex(bond_device),
617 "queue_id",
618 queue_id_str);
601 NMBondMode mode = NM_BOND_MODE_UNKNOWN;
602 const char *value;
603 NMSettingBond *s_bond;
604 gint32 prio;
605 gboolean prio_has;
606
607 s_bond = nm_device_get_applied_setting(bond_device, NM_TYPE_SETTING_BOND);
608 if (s_bond) {
609 value = nm_setting_bond_get_option_normalized(s_bond, NM_SETTING_BOND_OPTION_MODE);
610 mode = _nm_setting_bond_mode_from_string(value);
611 }
612
613 prio = s_port ? nm_setting_bond_port_get_prio(s_port) : NM_BOND_PORT_PRIO_DEF;
614
615 if (prio != 0) {
616 /* The profile explicitly sets the priority. No matter what, we try to set it
617 * in netlink. */
618 prio_has = TRUE;
619 } else if (!NM_IN_SET(mode, NM_BOND_MODE_ACTIVEBACKUP, NM_BOND_MODE_TLB, NM_BOND_MODE_ALB)) {
620 /* The priority only is configurable with certain modes. If we don't have
621 * one of those modes, don't try to set the priority explicitly to zero. */
622 prio_has = FALSE;
623 } else if (nm_platform_kernel_support_get_full(
624 NM_PLATFORM_KERNEL_SUPPORT_TYPE_IFLA_BOND_SLAVE_PRIO,
625 FALSE)
626 == NM_OPTION_BOOL_TRUE) {
627 /* We can only detect support if we have it. We cannot detect lack of support if
628 * we don't have it.
629 *
630 * But we did explicitly detect support, so explicitly set the prio to zero. */
631 prio_has = TRUE;
632 } else {
633 /* We either have an unsuitable mode or didn't detect kernel support for the
634 * priority. Don't explicitly set priority to zero. It is already the default,
635 * so it shouldn't be necessary. */
636 prio_has = FALSE;
637 }
638
639 nm_platform_link_change(nm_device_get_platform(port),
640 nm_device_get_ifindex(port),
641 &((NMPlatformLinkBondPort){
642 .queue_id = s_port ? nm_setting_bond_port_get_queue_id(s_port)
643 : NM_BOND_PORT_QUEUE_ID_DEF,
644 .prio = prio_has ? prio : 0,
645 .prio_has = prio_has,
646 }));
619647 }
620648
621649 static NMTernary
1169011690 }
1169111691
1169211692 if (nm_ndisc_get_node_type(priv->ipac6_data.ndisc) == NM_NDISC_NODE_TYPE_ROUTER) {
11693 nm_device_sysctl_ip_conf_set(self, AF_INET6, "forwarding", "1");
11693 gs_free char *sysctl_value = NULL;
11694
11695 sysctl_value = nm_device_sysctl_ip_conf_get(self, AF_INET6, "forwarding");
11696 if (!nm_streq0(sysctl_value, "1")) {
11697 if (sysctl_value && !g_hash_table_contains(priv->ip6_saved_properties, "forwarding")) {
11698 g_hash_table_insert(priv->ip6_saved_properties,
11699 "forwarding",
11700 g_steal_pointer(&sysctl_value));
11701 }
11702 nm_device_sysctl_ip_conf_set(self, AF_INET6, "forwarding", "1");
11703 }
11704
1169411705 priv->needs_ip6_subnet = TRUE;
1169511706 g_signal_emit(self, signals[IP6_SUBNET_NEEDED], 0);
1169611707 }
1174811759 {
1174911760 static const char *const ip6_properties_to_save[] = {
1175011761 "accept_ra",
11751 "forwarding",
1175211762 "disable_ipv6",
1175311763 "hop_limit",
1175411764 "use_tempaddr",
1289112901 NMConnection *con_old;
1289212902 NMConnection *con_new;
1289312903 GHashTableIter iter;
12904 NMSettingsConnection *sett_conn;
1289412905
1289512906 if (priv->state < NM_DEVICE_STATE_PREPARE || priv->state > NM_DEVICE_STATE_ACTIVATED) {
1289612907 g_set_error_literal(error,
1306213073
1306313074 if (priv->state >= NM_DEVICE_STATE_ACTIVATED)
1306413075 nm_device_update_metered(self);
13076
13077 sett_conn = nm_device_get_settings_connection(self);
13078 if (sett_conn) {
13079 nm_settings_connection_autoconnect_blocked_reason_set(
13080 sett_conn,
13081 NM_SETTINGS_AUTO_CONNECT_BLOCKED_REASON_USER_REQUEST,
13082 FALSE);
13083 }
1306513084
1306613085 /* Notify dispatcher when re-applied */
1306713086 _LOGD(LOGD_DEVICE, "Notifying re-apply complete");
1564815667 _dev_sysctl_set_disable_ipv6(self, FALSE);
1564915668 nm_device_sysctl_ip_conf_set(self, AF_INET6, "accept_ra", "0");
1565015669 nm_device_sysctl_ip_conf_set(self, AF_INET6, "use_tempaddr", "0");
15651 nm_device_sysctl_ip_conf_set(self, AF_INET6, "forwarding", "0");
1565215670 }
1565315671
1565415672 static void
225225 NMDeviceTeam *self = NM_DEVICE_TEAM(device);
226226 NMSettingTeam *s_team = _nm_connection_ensure_setting(connection, NM_TYPE_SETTING_TEAM);
227227 NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE(self);
228 struct teamdctl *tdc = priv->tdc;
229 GError *error = NULL;
230228
231229 /* Read the configuration only if not already set */
232 if (!priv->config) {
233 if (ensure_teamd_connection(device, &error)) {
234 teamd_read_config(self);
235 } else {
236 _LOGD(LOGD_TEAM, "could not connect to teamd: %s", error->message);
237 g_clear_error(&error);
238 }
239 }
240
241 /* Restore previous tdc state */
242 if (priv->tdc && !tdc) {
243 teamdctl_disconnect(priv->tdc);
244 teamdctl_free(priv->tdc);
245 priv->tdc = NULL;
230 if (!priv->config && priv->tdc) {
231 teamd_read_config(self);
246232 }
247233
248234 g_object_set(G_OBJECT(s_team), NM_SETTING_TEAM_CONFIG, _get_config(self), NULL);
584584 nm_device_devip_set_state(device, AF_INET, NM_DEVICE_IP_STATE_READY, l3cd);
585585
586586 /* This just disables the addressing indicator. */
587 method = NM_SETTING_IP4_CONFIG_METHOD_DISABLED;
587 method = NM_SETTING_IP4_CONFIG_METHOD_MANUAL;
588588 }
589589 }
590590
642642 if (addr_family == AF_INET && priv->group_iface
643643 && !nm_supplicant_interface_get_p2p_group_owner(priv->group_iface)
644644 && nm_supplicant_interface_get_p2p_assigned_addr(priv->group_iface, NULL, NULL))
645 return NM_SETTING_IP4_CONFIG_METHOD_DISABLED;
645 return NM_SETTING_IP4_CONFIG_METHOD_MANUAL;
646646
647647 /* Override the AUTO method to mean shared if we are group owner. */
648648 if (priv->group_iface && nm_supplicant_interface_get_p2p_group_owner(priv->group_iface)) {
888888 */
889889 _append(&strbuf,
890890 "add set netdev %s macset-tagged {"
891 " typeof ether saddr . vlan id; flags timeout; "
891 " typeof ether saddr . vlan id; flags dynamic,timeout; "
892892 "}",
893893 table_name);
894894 _append(&strbuf,
895895 "add set netdev %s macset-untagged {"
896 " typeof ether saddr; flags timeout;"
896 " typeof ether saddr; flags dynamic,timeout; "
897897 "}",
898898 table_name);
899899
390390 /*****************************************************************************/
391391
392392 static void
393 _lladdr_handle_changed(NML3IPv6LL *self)
393 _lladdr_handle_changed(NML3IPv6LL *self, gboolean force_commit)
394394 {
395395 const NML3ConfigData *l3cd;
396396 gboolean changed = FALSE;
419419 NM_DNS_PRIORITY_DEFAULT_NORMAL,
420420 NM_L3_ACD_DEFEND_TYPE_ALWAYS,
421421 0,
422 NM_L3CFG_CONFIG_FLAGS_NONE,
422 /* Even if the address was removed from platform, it must
423 * be re-added, hence FORCE_ONCE. */
424 NM_L3CFG_CONFIG_FLAGS_FORCE_ONCE,
423425 NM_L3_CONFIG_MERGE_FLAGS_NONE))
424426 changed = TRUE;
425427 } else {
433435 self->l3cfg_commit_handle,
434436 "ipv6ll");
435437
436 if (changed)
438 if (changed || force_commit)
437439 nm_l3cfg_commit_on_idle_schedule(self->l3cfg, NM_L3_CFG_COMMIT_TYPE_AUTO);
438440
439441 if (!self->emit_changed_idle_source) {
514516 const NMPlatformIP6Address *pladdr;
515517 char sbuf[INET6_ADDRSTRLEN];
516518 gboolean cur_addr_failed;
519 gboolean restarted = FALSE;
517520 struct in6_addr lladdr;
518521
519522 pladdr = _pladdr_find_ll(self, &cur_addr_failed);
525528 if (_set_cur_lladdr_obj(self, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, pladdr)) {
526529 _LOGT("changed: waiting for address %s to complete DAD",
527530 nm_inet6_ntop(&self->cur_lladdr, sbuf));
528 _lladdr_handle_changed(self);
531 _lladdr_handle_changed(self, FALSE);
529532 }
530533 return;
531534 }
532535
533536 if (_set_cur_lladdr_obj(self, NM_L3_IPV6LL_STATE_READY, pladdr)) {
534537 _LOGT("changed: address %s is ready", nm_inet6_ntop(&self->cur_lladdr, sbuf));
535 _lladdr_handle_changed(self);
538 _lladdr_handle_changed(self, FALSE);
536539 }
537540 return;
538541 }
542545 * Prematurely abort DAD to generate a new address below. */
543546 nm_assert(
544547 NM_IN_SET(self->state, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, NM_L3_IPV6LL_STATE_READY));
545 if (self->state == NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS)
546 _LOGT("changed: address %s did not complete DAD",
547 nm_inet6_ntop(&self->cur_lladdr, sbuf));
548 else {
548
549 if (cur_addr_failed) {
550 /* On DAD failure, we always try to regenerate a new address. */
551 _LOGT("changed: address %s failed", nm_inet6_ntop(&self->cur_lladdr, sbuf));
552 } else {
549553 _LOGT("changed: address %s is gone", nm_inet6_ntop(&self->cur_lladdr, sbuf));
554 /* When the address is removed, we always try to re-add it. */
555 nm_clear_g_source_inst(&self->wait_for_addr_source);
556 lladdr = self->cur_lladdr;
557 restarted = TRUE;
558 goto commit;
550559 }
551560
552561 /* reset the state here, so that we are sure that the following
568577 if (_set_cur_lladdr_bin(self, NM_L3_IPV6LL_STATE_DAD_FAILED, NULL)) {
569578 _LOGW("changed: no IPv6 link local address to retry after Duplicate Address Detection "
570579 "failures (back off)");
571 _lladdr_handle_changed(self);
580 _lladdr_handle_changed(self, FALSE);
572581 }
573582 return;
574583 }
575584
585 commit:
576586 /* we give NML3Cfg 2 seconds to configure the address on the interface. We
577587 * thus very soon expect to see this address configured (and kernel started DAD).
578588 * If that does not happen within timeout, we assume that this address failed DAD. */
579589 self->wait_for_addr_source = nm_g_timeout_add_source(2000, _wait_for_addr_timeout_cb, self);
580 if (_set_cur_lladdr_bin(self, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, &lladdr)) {
590 if (_set_cur_lladdr_bin(self, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, &lladdr) || restarted) {
581591 _LOGT("changed: starting DAD for address %s", nm_inet6_ntop(&self->cur_lladdr, sbuf));
582 _lladdr_handle_changed(self);
592 _lladdr_handle_changed(self, restarted);
583593 }
584594 return;
585595 }
666666 }
667667
668668 static gboolean
669 link_change(NMPlatform *platform,
670 int ifindex,
671 NMPortKind port_kind,
672 const NMPlatformLinkPortData *port_data)
673 {
674 NMFakePlatformLink *device = link_get(platform, ifindex);
675 nm_auto_nmpobj NMPObject *obj_tmp = NULL;
676
677 switch (port_kind) {
678 case NM_PORT_KIND_BOND:
679 obj_tmp = nmp_object_clone(device->obj, FALSE);
680 obj_tmp->link.port_kind = NM_PORT_KIND_BOND;
681 obj_tmp->link.port_data.bond.queue_id = port_data->bond.queue_id;
682 obj_tmp->link.port_data.bond.prio_has = port_data->bond.prio_has;
683 obj_tmp->link.port_data.bond.prio = port_data->bond.prio;
684 link_set_obj(platform, device, obj_tmp);
685 return TRUE;
686 case NM_PORT_KIND_NONE:
687 return TRUE;
688 }
689
690 return nm_assert_unreachable_val(TRUE);
691 }
692
693 static gboolean
669694 link_enslave(NMPlatform *platform, int master, int slave)
670695 {
671696 NMFakePlatformLink *device = link_get(platform, slave);
769794 infiniband_partition_delete(NMPlatform *platform, int parent, int p_key)
770795 {
771796 NMFakePlatformLink *parent_device;
772 gs_free char *name = NULL;
797 char name[IFNAMSIZ];
773798
774799 parent_device = link_get(platform, parent);
775800 g_return_val_if_fail(parent_device != NULL, FALSE);
13241349 platform_class->link_set_address = link_set_address;
13251350 platform_class->link_set_mtu = link_set_mtu;
13261351
1352 platform_class->link_change = link_change;
13271353 platform_class->link_change_flags = link_change_flags;
13281354
13291355 platform_class->link_get_driver_info = link_get_driver_info;
111111 gboolean bond0_exists = !!nm_platform_link_get_by_ifname(NM_PLATFORM_GET, "bond0");
112112 int r;
113113 const NMPlatformLnkBond nm_platform_lnk_bond_default = {
114 .mode = 3,
114 .mode = nmtst_rand_select(3, 1),
115115 };
116116
117117 r = nm_platform_link_bond_add(NM_PLATFORM_GET, name, &nm_platform_lnk_bond_default, NULL);
261261 g_assert(nm_platform_link_is_up(NM_PLATFORM_GET, ifindex));
262262 else
263263 g_assert(!nm_platform_link_is_up(NM_PLATFORM_GET, ifindex));
264
265 if (NM_IN_SET(link_type, NM_LINK_TYPE_BOND)) {
266 NMPlatformLinkBondPort bond_port;
267 gboolean prio_has;
268 gboolean prio_supported;
269 const NMPlatformLink *link;
270 const NMPlatformLnkBond *lnk;
271
272 link = nmtstp_link_get_typed(NM_PLATFORM_GET, 0, SLAVE_NAME, NM_LINK_TYPE_DUMMY);
273 g_assert(link);
274
275 lnk = nm_platform_link_get_lnk_bond(NM_PLATFORM_GET, master, NULL);
276 g_assert(lnk);
277
278 g_assert(NM_IN_SET(lnk->mode, 3, 1));
279 prio_supported = (lnk->mode == 1);
280 prio_has = nmtst_get_rand_bool() && prio_supported;
281
282 bond_port = (NMPlatformLinkBondPort){
283 .queue_id = 5,
284 .prio_has = prio_has,
285 .prio = prio_has ? 6 : 0,
286 };
287
288 g_assert(nm_platform_link_change(NM_PLATFORM_GET, ifindex, &bond_port));
289 accept_signals(link_changed, 1, 3);
290
291 link = nmtstp_link_get(NM_PLATFORM_GET, ifindex, SLAVE_NAME);
292 g_assert(link);
293 g_assert_cmpint(link->port_data.bond.queue_id, ==, 5);
294 g_assert(link->port_data.bond.prio_has || link->port_data.bond.prio == 0);
295 }
264296
265297 test_link_changed_signal_arg1 = FALSE;
266298 test_link_changed_signal_arg2 = FALSE;
33483380 nm_auto_pop_netns NMPNetns *netns_pop = NULL;
33493381 NMPlatform *platforms[3];
33503382 NMPNetns *netns;
3383 int errsv;
33513384 int i;
3385 int r;
33523386
33533387 if (_test_netns_check_skip())
33543388 return;
33783412 g_assert(nmp_netns_bind_to_path(netns, P_VAR_RUN_NETNS_BINDNAME, NULL));
33793413
33803414 g_assert(g_file_test(P_VAR_RUN_NETNS_BINDNAME, G_FILE_TEST_EXISTS));
3381 g_assert_cmpint(nmtstp_run_command("ip netns exec " P_NETNS_BINDNAME " true"), ==, 0);
3415
3416 r = nmtstp_run_command("ip netns exec " P_NETNS_BINDNAME " true");
3417 if (r != 0) {
3418 gs_free char *msg = g_strdup_printf("`ip netns exec` fails with code %d. Skip test", r);
3419
3420 g_test_skip(msg);
3421 return;
3422 }
3423
33823424 g_assert_cmpint(
33833425 nmtstp_run_command("ip netns exec " P_NETNS_BINDNAME " ip link show dummy2b 1>/dev/null"),
33843426 ==,
33913433 !=,
33923434 0);
33933435
3394 g_assert_cmpint(umount(P_VAR_RUN), ==, 0);
3436 r = umount(P_VAR_RUN);
3437 if (r != 0) {
3438 errsv = errno;
3439 g_assert_cmpint(errsv, ==, 0);
3440 g_assert_cmpint(r, ==, 0);
3441 }
33953442 }
33963443
33973444 /*****************************************************************************/
22 nm_pppd_plugin = shared_module(
33 'nm-pppd-plugin',
44 name_prefix: '',
5 sources: 'nm-pppd-plugin.c',
5 sources: [
6 'nm-pppd-compat.c',
7 'nm-pppd-plugin.c',
8 ],
69 include_directories: [
710 src_inc,
811 top_inc,
1013 dependencies: [
1114 libnm_core_public_dep,
1215 glib_dep,
16 pppd_dep,
1317 ],
1418 link_with: [
1519 libnm_core_impl,
427427
428428 if (ppp_state >= NM_PPP_STATUS_INTERN_DEAD) {
429429 /* we don't expect an intern state to be reported by the plugin. */
430 ppp_state = NM_PPP_STATUS_UNKNOWN;
430 ppp_state = NM_PPP_STATUS_INTERN_UNKNOWN;
431431 }
432432
433433 g_signal_emit(self, signals[STATE_CHANGED], 0, (guint) ppp_state);
842842 const char *pppoe_service;
843843
844844 nm_strv_ptrarray_add_string_dup(cmd, "plugin");
845 nm_strv_ptrarray_add_string_dup(cmd, "rp-pppoe.so");
845 nm_strv_ptrarray_add_string_dup(cmd, NM_PPPOE_PLUGIN_NAME);
846846
847847 nm_strv_ptrarray_add_string_concat(cmd, "nic-", priv->parent_iface);
848848
871871
872872 } else if (!strcmp(protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE)) {
873873 nm_strv_ptrarray_add_string_dup(cmd, "plugin");
874 nm_strv_ptrarray_add_string_dup(cmd, "rp-pppoe.so");
874 nm_strv_ptrarray_add_string_dup(cmd, NM_PPPOE_PLUGIN_NAME);
875875 nm_strv_ptrarray_add_string_dup(cmd, priv->parent_iface);
876876 }
877877
256256 const char *reason_msg;
257257
258258 if ((guint) ppp_state != ppp_state_u)
259 ppp_state = NM_PPP_STATUS_UNKNOWN;
259 ppp_state = NM_PPP_STATUS_INTERN_UNKNOWN;
260260
261261 switch (ppp_state) {
262262 case NM_PPP_STATUS_DISCONNECT:
77 #define __NM_PPP_STATUS_H__
88
99 typedef enum {
10 NM_PPP_STATUS_UNKNOWN,
1110
12 NM_PPP_STATUS_DEAD,
13 NM_PPP_STATUS_INITIALIZE,
14 NM_PPP_STATUS_SERIALCONN,
15 NM_PPP_STATUS_DORMANT,
16 NM_PPP_STATUS_ESTABLISH,
17 NM_PPP_STATUS_AUTHENTICATE,
18 NM_PPP_STATUS_CALLBACK,
19 NM_PPP_STATUS_NETWORK,
20 NM_PPP_STATUS_RUNNING,
21 NM_PPP_STATUS_TERMINATE,
22 NM_PPP_STATUS_DISCONNECT,
23 NM_PPP_STATUS_HOLDOFF,
24 NM_PPP_STATUS_MASTER,
11 /* The numeric values correspond to the PHASE_{DEAD,} defines from <pppd/pppd.h>. */
12 NM_PPP_STATUS_DEAD = 0,
13 NM_PPP_STATUS_INITIALIZE = 1,
14 NM_PPP_STATUS_SERIALCONN = 2,
15 NM_PPP_STATUS_DORMANT = 3,
16 NM_PPP_STATUS_ESTABLISH = 4,
17 NM_PPP_STATUS_AUTHENTICATE = 5,
18 NM_PPP_STATUS_CALLBACK = 6,
19 NM_PPP_STATUS_NETWORK = 7,
20 NM_PPP_STATUS_RUNNING = 8,
21 NM_PPP_STATUS_TERMINATE = 9,
22 NM_PPP_STATUS_DISCONNECT = 10,
23 NM_PPP_STATUS_HOLDOFF = 11,
24 NM_PPP_STATUS_MASTER = 12,
2525
2626 /* these states are internal and not announced by the pppd plugin. */
27 NM_PPP_STATUS_INTERN_UNKNOWN = 20,
2728 NM_PPP_STATUS_INTERN_DEAD,
2829 } NMPPPStatus;
2930
31 /*****************************************************************************/
32
33 /* The plugin name "(rp-)pppoe.so" depends on the ppp version. */
34
35 #define NM_PPPOE_PLUGIN_NAME (NM_PPP_VERSION_2_5_OR_NEWER ? "pppoe.so" : "rp-pppoe.so")
36
3037 #endif /* __NM_PPP_STATUS_H__ */
0 /* SPDX-License-Identifier: LGPL-2.1-or-later */
1 /*
2 * Copyright (C) 2023 Eivind Næss, eivnaes@yahoo.com
3 */
4
5 /*****************************************************************************/
6
7 /* PPP headers define some symbols as we do. We need to be careful to handle
8 * the conflict, and include stuff in a certain order. */
9
10 #include <config.h>
11 #define ___CONFIG_H__
12
13 /*****************************************************************************/
14
15 #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))
16 _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wstrict-prototypes\"")
17 #define _NM_PRAGMA_WARNING_REENABLE _Pragma("GCC diagnostic pop")
18 #elif defined(__clang__)
19 _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wunknown-warning-option\"")
20 _Pragma("clang diagnostic ignored \"-Wstrict-prototypes\"")
21 #define _NM_PRAGMA_WARNING_REENABLE _Pragma("clang diagnostic pop")
22 #else
23 #define _NM_PRAGMA_WARNING_REENABLE
24 #endif
25
26 /*****************************************************************************/
27
28 #define INET6 1
29
30 #include <pppd/pppd.h>
31
32 #ifdef DATE
33 /* Before ppp 2.5, pppd/patchlevel.h defined "DATE". Use that for detection. */
34 #define PPP_VERSION_2_5_OR_NEWER 0
35 #else
36 #define PPP_VERSION_2_5_OR_NEWER 1
37 #endif
38
39 #include <pppd/eui64.h>
40 #include <pppd/fsm.h>
41 #include <pppd/ipcp.h>
42 #include <pppd/ipv6cp.h>
43 #include <pppd/upap.h>
44
45 #if PPP_VERSION_2_5_OR_NEWER
46 #include <pppd/chap.h>
47 #else
48 #include <pppd/chap-new.h>
49 #include <pppd/chap_ms.h>
50 #endif
51
52 char pppd_version[] = (
53 #if PPP_VERSION_2_5_OR_NEWER
54 PPPD_VERSION
55 #else
56 VERSION
57 #endif
58 );
59
60 #undef VERSION
61
62 _NM_PRAGMA_WARNING_REENABLE;
63
64 /*****************************************************************************/
65
66 #include "libnm-glib-aux/nm-default-glib.h"
67
68 #include "nm-pppd-compat.h"
69
70 #include <net/if.h>
71 #include <dlfcn.h>
72
73 #include "nm-ppp-status.h"
74
75 /*****************************************************************************/
76
77 G_STATIC_ASSERT(PPP_VERSION_2_5_OR_NEWER == NM_PPP_VERSION_2_5_OR_NEWER);
78
79 /*****************************************************************************/
80
81 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_DEAD == PHASE_DEAD);
82 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_INITIALIZE == PHASE_INITIALIZE);
83 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_SERIALCONN == PHASE_SERIALCONN);
84 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_DORMANT == PHASE_DORMANT);
85 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_ESTABLISH == PHASE_ESTABLISH);
86 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_AUTHENTICATE == PHASE_AUTHENTICATE);
87 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_CALLBACK == PHASE_CALLBACK);
88 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_NETWORK == PHASE_NETWORK);
89 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_RUNNING == PHASE_RUNNING);
90 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_TERMINATE == PHASE_TERMINATE);
91 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_DISCONNECT == PHASE_DISCONNECT);
92 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_HOLDOFF == PHASE_HOLDOFF);
93 G_STATIC_ASSERT((gint64) NM_PPP_STATUS_MASTER == PHASE_MASTER);
94
95 G_STATIC_ASSERT(NM_PPPD_COMPAT_MAXNAMELEN == MAXNAMELEN);
96 G_STATIC_ASSERT(NM_PPPD_COMPAT_MAXSECRETLEN == MAXSECRETLEN);
97
98 /*****************************************************************************/
99
100 int
101 nm_pppd_compat_get_ifunit(void)
102 {
103 int i;
104
105 #if PPP_VERSION_2_5_OR_NEWER
106 i = ppp_ifunit();
107 #else
108 i = ifunit;
109 #endif
110
111 return i;
112 }
113
114 const char *
115 nm_pppd_compat_get_ifname(void)
116 {
117 const char *s;
118
119 #if PPP_VERSION_2_5_OR_NEWER
120 s = ppp_ifname();
121 #else
122 s = ifname;
123 #endif
124
125 nm_assert(s);
126 nm_assert(strlen(s) < IFNAMSIZ);
127 return s;
128 }
129
130 void
131 nm_pppd_compat_set_ifname(const char *arg_ifname)
132 {
133 nm_assert(arg_ifname);
134 nm_assert(strlen(arg_ifname) < IFNAMSIZ);
135
136 #if PPP_VERSION_2_5_OR_NEWER
137 ppp_set_ifname(arg_ifname);
138 #else
139 g_strlcpy(ifname, arg_ifname, IFNAMSIZ);
140 #endif
141 }
142
143 const char *
144 nm_pppd_compat_get_ipparam(void)
145 {
146 const char *s;
147
148 #if PPP_VERSION_2_5_OR_NEWER
149 s = ppp_ipparam();
150 #else
151 s = ipparam;
152 #endif
153
154 return s;
155 }
156
157 void
158 nm_pppd_compat_get_ipcp_options(NMPppdCompatIPCPOptions *out_got, NMPppdCompatIPCPOptions *out_his)
159 {
160 const ipcp_options *const got = &ipcp_gotoptions[0];
161 const ipcp_options *const his = &ipcp_hisoptions[0];
162
163 nm_assert(out_got);
164 nm_assert(out_his);
165
166 *out_got = (NMPppdCompatIPCPOptions){
167 .ouraddr = got->ouraddr,
168 .hisaddr = got->hisaddr,
169 .dnsaddr = {got->dnsaddr[0], got->dnsaddr[1]},
170 .winsaddr = {got->winsaddr[0], got->winsaddr[1]},
171 };
172
173 *out_his = (NMPppdCompatIPCPOptions){
174 .ouraddr = his->ouraddr,
175 .hisaddr = his->hisaddr,
176 .dnsaddr = {his->dnsaddr[0], his->dnsaddr[1]},
177 .winsaddr = {his->winsaddr[0], his->winsaddr[1]},
178 };
179 }
180
181 void
182 nm_pppd_compat_get_ipv6cp_options(NMPppdCompatIPV6CPOptions *out_got,
183 NMPppdCompatIPV6CPOptions *out_his)
184 {
185 const ipv6cp_options *const his = &ipv6cp_hisoptions[0];
186 const ipv6cp_options *const got = &ipv6cp_gotoptions[0];
187
188 G_STATIC_ASSERT(sizeof(guint64) == sizeof(eui64_t));
189
190 nm_assert(out_got);
191 nm_assert(out_his);
192
193 *out_got = (NMPppdCompatIPV6CPOptions){};
194 memcpy(&out_got->ourid, &got->ourid, sizeof(guint64));
195 memcpy(&out_got->hisid, &got->hisid, sizeof(guint64));
196
197 *out_his = (NMPppdCompatIPV6CPOptions){};
198 memcpy(&out_his->ourid, &his->ourid, sizeof(guint64));
199 memcpy(&out_his->hisid, &his->hisid, sizeof(guint64));
200 }
201
202 void
203 nm_pppd_compat_set_chap_passwd_hook(int (*hook)(char *user, char *password))
204 {
205 chap_passwd_hook = hook;
206 }
207
208 void
209 nm_pppd_compat_set_chap_check_hook(int (*hook)(void))
210 {
211 chap_check_hook = hook;
212 }
213
214 void
215 nm_pppd_compat_set_pap_passwd_hook(int (*hook)(char *user, char *passwd))
216 {
217 pap_passwd_hook = hook;
218 }
219
220 void
221 nm_pppd_compat_set_pap_check_hook(int (*hook)(void))
222 {
223 pap_check_hook = hook;
224 }
225
226 gboolean
227 nm_pppd_compat_add_notify(NMPppdCompatNotifyT type, void (*func)(void *ctx, int arg), void *ctx)
228 {
229 nm_assert(NM_IN_SET(type,
230 NM_PPPD_COMPAT_NF_PID_CHANGE,
231 NM_PPPD_COMPAT_NF_PHASE_CHANGE,
232 NM_PPPD_COMPAT_NF_EXIT,
233 NM_PPPD_COMPAT_NF_SIGNALED,
234 NM_PPPD_COMPAT_NF_IP_UP,
235 NM_PPPD_COMPAT_NF_IP_DOWN,
236 NM_PPPD_COMPAT_NF_IPV6_UP,
237 NM_PPPD_COMPAT_NF_IPV6_DOWN,
238 NM_PPPD_COMPAT_NF_AUTH_UP,
239 NM_PPPD_COMPAT_NF_LINK_DOWN,
240 NM_PPPD_COMPAT_NF_FORK));
241 nm_assert(func);
242
243 #if PPP_VERSION_2_5_OR_NEWER
244 {
245 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_PID_CHANGE == NF_PID_CHANGE);
246 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_PHASE_CHANGE == NF_PHASE_CHANGE);
247 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_EXIT == NF_EXIT);
248 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_SIGNALED == NF_SIGNALED);
249 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_IP_UP == NF_IP_UP);
250 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_IP_DOWN == NF_IP_DOWN);
251 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_IPV6_UP == NF_IPV6_UP);
252 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_IPV6_DOWN == NF_IPV6_DOWN);
253 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_AUTH_UP == NF_AUTH_UP);
254 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_LINK_DOWN == NF_LINK_DOWN);
255 G_STATIC_ASSERT((gint64) NM_PPPD_COMPAT_NF_FORK == NF_FORK);
256
257 ppp_add_notify((gint64) type, func, ctx);
258 return TRUE;
259 }
260 #else
261 {
262 static struct notifier **list[] = {
263 [NM_PPPD_COMPAT_NF_PID_CHANGE] = &pidchange,
264 [NM_PPPD_COMPAT_NF_PHASE_CHANGE] = &phasechange,
265 [NM_PPPD_COMPAT_NF_EXIT] = &exitnotify,
266 [NM_PPPD_COMPAT_NF_SIGNALED] = &sigreceived,
267 [NM_PPPD_COMPAT_NF_IP_UP] = &ip_up_notifier,
268 [NM_PPPD_COMPAT_NF_IP_DOWN] = &ip_down_notifier,
269 [NM_PPPD_COMPAT_NF_IPV6_UP] = NULL /* ipv6_up_notifier */,
270 [NM_PPPD_COMPAT_NF_IPV6_DOWN] = NULL /* ipv6_down_notifier */,
271 [NM_PPPD_COMPAT_NF_AUTH_UP] = &auth_up_notifier,
272 [NM_PPPD_COMPAT_NF_LINK_DOWN] = &link_down_notifier,
273 [NM_PPPD_COMPAT_NF_FORK] = &fork_notifier,
274 };
275 struct notifier **notifier;
276
277 nm_assert(_NM_INT_NOT_NEGATIVE(type) && type < G_N_ELEMENTS(list));
278
279 if (NM_IN_SET(type, NM_PPPD_COMPAT_NF_IPV6_UP, NM_PPPD_COMPAT_NF_IPV6_DOWN)) {
280 static gsize load_once = 0;
281
282 /* pppd might be build without IPv6 support. Load the symbols dynamically. */
283 if (g_once_init_enter(&load_once)) {
284 void *handle;
285
286 handle = dlopen(NULL, RTLD_NOW | RTLD_GLOBAL);
287 if (handle) {
288 list[NM_PPPD_COMPAT_NF_IPV6_UP] = dlsym(handle, "ipv6_up_notifier");
289 list[NM_PPPD_COMPAT_NF_IPV6_DOWN] = dlsym(handle, "ipv6_down_notifier");
290 dlclose(handle);
291 }
292 g_once_init_leave(&load_once, 1);
293 }
294
295 notifier = list[type];
296 } else {
297 notifier = list[type];
298 nm_assert(notifier);
299 }
300
301 if (notifier)
302 add_notifier(notifier, func, ctx);
303
304 return !!notifier;
305 }
306 #endif
307 }
0 /* SPDX-License-Identifier: LGPL-2.1-or-later */
1 /*
2 * Copyright (C) 2023 Eivind Næss, eivnaes@yahoo.com
3 */
4
5 #ifndef __NM_PPPD_COMPAT_H__
6 #define __NM_PPPD_COMPAT_H__
7
8 #define NM_PPPD_COMPAT_MAXNAMELEN 256
9 #define NM_PPPD_COMPAT_MAXSECRETLEN 256
10
11 int nm_pppd_compat_get_ifunit(void);
12
13 const char *nm_pppd_compat_get_ifname(void);
14 void nm_pppd_compat_set_ifname(const char *ifname);
15
16 const char *nm_pppd_compat_get_ipparam(void);
17
18 typedef struct {
19 /* has information from "ipcp_options" */
20 in_addr_t ouraddr;
21 in_addr_t hisaddr;
22 in_addr_t dnsaddr[2];
23 in_addr_t winsaddr[2];
24 } NMPppdCompatIPCPOptions;
25
26 void nm_pppd_compat_get_ipcp_options(NMPppdCompatIPCPOptions *out_got,
27 NMPppdCompatIPCPOptions *out_his);
28
29 typedef struct {
30 /* has information from "ipv6cp_options" */
31 guint64 ourid;
32 guint64 hisid;
33 } NMPppdCompatIPV6CPOptions;
34
35 void nm_pppd_compat_get_ipv6cp_options(NMPppdCompatIPV6CPOptions *out_got,
36 NMPppdCompatIPV6CPOptions *out_his);
37
38 void nm_pppd_compat_set_chap_passwd_hook(int (*hook)(char *user, char *password));
39
40 void nm_pppd_compat_set_chap_check_hook(int (*hook)(void));
41
42 void nm_pppd_compat_set_pap_passwd_hook(int (*hook)(char *user, char *passwd));
43
44 void nm_pppd_compat_set_pap_check_hook(int (*hook)(void));
45
46 typedef enum {
47 NM_PPPD_COMPAT_NF_PID_CHANGE,
48 NM_PPPD_COMPAT_NF_PHASE_CHANGE,
49 NM_PPPD_COMPAT_NF_EXIT,
50 NM_PPPD_COMPAT_NF_SIGNALED,
51 NM_PPPD_COMPAT_NF_IP_UP,
52 NM_PPPD_COMPAT_NF_IP_DOWN,
53 NM_PPPD_COMPAT_NF_IPV6_UP,
54 NM_PPPD_COMPAT_NF_IPV6_DOWN,
55 NM_PPPD_COMPAT_NF_AUTH_UP,
56 NM_PPPD_COMPAT_NF_LINK_DOWN,
57 NM_PPPD_COMPAT_NF_FORK,
58 } NMPppdCompatNotifyT;
59
60 gboolean
61 nm_pppd_compat_add_notify(NMPppdCompatNotifyT type, void (*func)(void *ctx, int arg), void *ctx);
62
63 #endif /* #ifdef __NM_PPPD_COMPAT_H__ */
33 * Copyright (C) 2008 Red Hat, Inc.
44 */
55
6 #include <config.h>
7 #define ___CONFIG_H__
8
9 #include <pppd/pppd.h>
10 #include <pppd/fsm.h>
11 #include <pppd/ipcp.h>
6 #include "libnm-glib-aux/nm-default-glib.h"
7
8 #include "nm-pppd-plugin.h"
9
1210 #include <sys/socket.h>
1311 #include <netinet/in.h>
1412 #include <net/if.h>
1513 #include <arpa/inet.h>
1614 #include <dlfcn.h>
17
18 #define INET6
19 #include <pppd/eui64.h>
20 #include <pppd/ipv6cp.h>
21
22 #include "libnm-glib-aux/nm-default-glib.h"
23
15 #include <glib.h>
16
17 #include "nm-pppd-compat.h"
18 #include "nm-ppp-status.h"
2419 #include "nm-dbus-interface.h"
2520
26 #include "nm-pppd-plugin.h"
27 #include "nm-ppp-status.h"
28
2921 int plugin_init(void);
30
31 char pppd_version[] = VERSION;
3222
3323 static struct {
3424 GDBusConnection *dbus_connection;
3828 static void
3929 nm_phasechange(int arg)
4030 {
41 NMPPPStatus ppp_status = NM_PPP_STATUS_UNKNOWN;
31 NMPPPStatus ppp_status;
4232 char *ppp_phase;
4333
4434 g_return_if_fail(G_IS_DBUS_CONNECTION(gl.dbus_connection));
4535
36 ppp_status = arg;
37
4638 switch (arg) {
47 case PHASE_DEAD:
48 ppp_status = NM_PPP_STATUS_DEAD;
49 ppp_phase = "dead";
50 break;
51 case PHASE_INITIALIZE:
52 ppp_status = NM_PPP_STATUS_INITIALIZE;
53 ppp_phase = "initialize";
54 break;
55 case PHASE_SERIALCONN:
56 ppp_status = NM_PPP_STATUS_SERIALCONN;
57 ppp_phase = "serial connection";
58 break;
59 case PHASE_DORMANT:
60 ppp_status = NM_PPP_STATUS_DORMANT;
61 ppp_phase = "dormant";
62 break;
63 case PHASE_ESTABLISH:
64 ppp_status = NM_PPP_STATUS_ESTABLISH;
65 ppp_phase = "establish";
66 break;
67 case PHASE_AUTHENTICATE:
68 ppp_status = NM_PPP_STATUS_AUTHENTICATE;
69 ppp_phase = "authenticate";
70 break;
71 case PHASE_CALLBACK:
72 ppp_status = NM_PPP_STATUS_CALLBACK;
73 ppp_phase = "callback";
74 break;
75 case PHASE_NETWORK:
76 ppp_status = NM_PPP_STATUS_NETWORK;
77 ppp_phase = "network";
78 break;
79 case PHASE_RUNNING:
80 ppp_status = NM_PPP_STATUS_RUNNING;
81 ppp_phase = "running";
82 break;
83 case PHASE_TERMINATE:
84 ppp_status = NM_PPP_STATUS_TERMINATE;
85 ppp_phase = "terminate";
86 break;
87 case PHASE_DISCONNECT:
88 ppp_status = NM_PPP_STATUS_DISCONNECT;
89 ppp_phase = "disconnect";
90 break;
91 case PHASE_HOLDOFF:
92 ppp_status = NM_PPP_STATUS_HOLDOFF;
93 ppp_phase = "holdoff";
94 break;
95 case PHASE_MASTER:
96 ppp_status = NM_PPP_STATUS_MASTER;
97 ppp_phase = "master";
39 case NM_PPP_STATUS_DEAD:
40 ppp_phase = "dead";
41 break;
42 case NM_PPP_STATUS_INITIALIZE:
43 ppp_phase = "initialize";
44 break;
45 case NM_PPP_STATUS_SERIALCONN:
46 ppp_phase = "serial connection";
47 break;
48 case NM_PPP_STATUS_DORMANT:
49 ppp_phase = "dormant";
50 break;
51 case NM_PPP_STATUS_ESTABLISH:
52 ppp_phase = "establish";
53 break;
54 case NM_PPP_STATUS_AUTHENTICATE:
55 ppp_phase = "authenticate";
56 break;
57 case NM_PPP_STATUS_CALLBACK:
58 ppp_phase = "callback";
59 break;
60 case NM_PPP_STATUS_NETWORK:
61 ppp_phase = "network";
62 break;
63 case NM_PPP_STATUS_RUNNING:
64 ppp_phase = "running";
65 break;
66 case NM_PPP_STATUS_TERMINATE:
67 ppp_phase = "terminate";
68 break;
69 case NM_PPP_STATUS_DISCONNECT:
70 ppp_phase = "disconnect";
71 break;
72 case NM_PPP_STATUS_HOLDOFF:
73 ppp_phase = "holdoff";
74 break;
75 case NM_PPP_STATUS_MASTER:
76 ppp_phase = "master";
9877 break;
9978
10079 default:
101 ppp_phase = "unknown";
80 ppp_status = NM_PPP_STATUS_INTERN_UNKNOWN;
81 ppp_phase = "unknown";
10282 break;
10383 }
10484
10585 g_message("nm-ppp-plugin: status %d / phase '%s'", ppp_status, ppp_phase);
10686
107 if (ppp_status != NM_PPP_STATUS_UNKNOWN) {
87 if (ppp_status != NM_PPP_STATUS_INTERN_UNKNOWN) {
10888 g_dbus_connection_call(gl.dbus_connection,
10989 NM_DBUS_SERVICE,
11090 gl.ipparam,
124104 char new_name[IF_NAMESIZE];
125105 int ifindex;
126106
127 ifindex = if_nametoindex(ifname);
107 ifindex = if_nametoindex(nm_pppd_compat_get_ifname());
128108
129109 /* Make a sync call to ensure that when the call
130110 * terminates the interface already has its final
142122 NULL);
143123
144124 /* Update the name in pppd if NM changed it */
145 if (if_indextoname(ifindex, new_name) && !nm_streq0(ifname, new_name)) {
146 g_message("nm-ppp-plugin: interface name changed from '%s' to '%s'", ifname, new_name);
147 g_strlcpy(ifname, new_name, IF_NAMESIZE);
125 if (if_indextoname(ifindex, new_name)
126 && !nm_streq0(nm_pppd_compat_get_ifname(), new_name)) {
127 g_message("nm-ppp-plugin: interface name changed from '%s' to '%s'",
128 nm_pppd_compat_get_ifname(),
129 new_name);
130 nm_pppd_compat_set_ifname(new_name);
148131 }
149132 }
150133 }
153136 nm_phasechange_hook(void *data, int arg)
154137 {
155138 /* We send the nofication in exitnotify instead */
156 if (arg == PHASE_DEAD)
139 if (arg == NM_PPP_STATUS_DEAD)
157140 return;
158141
159142 nm_phasechange(arg);
162145 static void
163146 nm_ip_up(void *data, int arg)
164147 {
165 ipcp_options opts = ipcp_gotoptions[0];
166 ipcp_options peer_opts = ipcp_hisoptions[0];
167 GVariantBuilder builder;
168 guint32 pppd_made_up_address = htonl(0x0a404040 + ifunit);
148 NMPppdCompatIPCPOptions opts;
149 NMPppdCompatIPCPOptions peer_opts;
150 GVariantBuilder builder;
151 const in_addr_t pppd_made_up_address =
152 htonl(0x0a404040u + ((guint) nm_pppd_compat_get_ifunit()));
169153
170154 g_return_if_fail(G_IS_DBUS_CONNECTION(gl.dbus_connection));
171155
172156 g_message("nm-ppp-plugin: ip-up event");
157
158 nm_pppd_compat_get_ipcp_options(&opts, &peer_opts);
173159
174160 if (!opts.ouraddr) {
175161 g_warning("nm-ppp-plugin: didn't receive an internal IP from pppd!");
176 nm_phasechange(PHASE_DEAD);
162 nm_phasechange(NM_PPP_STATUS_DEAD);
177163 return;
178164 }
179165
185171 g_variant_builder_add(&builder,
186172 "{sv}",
187173 NM_PPP_IP4_CONFIG_INTERFACE,
188 g_variant_new_string(ifname));
174 g_variant_new_string(nm_pppd_compat_get_ifname()));
189175
190176 g_variant_builder_add(&builder,
191177 "{sv}",
262248 NULL);
263249 }
264250
265 static GVariant *
266 eui64_to_variant(eui64_t eui)
267 {
268 guint64 iid;
269
270 G_STATIC_ASSERT(sizeof(iid) == sizeof(eui));
271
272 memcpy(&iid, &eui, sizeof(eui));
273 return g_variant_new_uint64(iid);
274 }
275
276251 static void
277252 nm_ip6_up(void *data, int arg)
278253 {
279 ipv6cp_options *ho = &ipv6cp_hisoptions[0];
280 ipv6cp_options *go = &ipv6cp_gotoptions[0];
281 GVariantBuilder builder;
254 NMPppdCompatIPV6CPOptions his;
255 NMPppdCompatIPV6CPOptions got;
256 GVariantBuilder builder;
282257
283258 g_return_if_fail(G_IS_DBUS_CONNECTION(gl.dbus_connection));
284259
285260 g_message("nm-ppp-plugin: ip6-up event");
261
262 nm_pppd_compat_get_ipv6cp_options(&got, &his);
286263
287264 g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
288265 /* Keep sending the interface name to be backwards compatible
291268 g_variant_builder_add(&builder,
292269 "{sv}",
293270 NM_PPP_IP6_CONFIG_INTERFACE,
294 g_variant_new_string(ifname));
295 g_variant_builder_add(&builder, "{sv}", NM_PPP_IP6_CONFIG_OUR_IID, eui64_to_variant(go->ourid));
271 g_variant_new_string(nm_pppd_compat_get_ifname()));
272 g_variant_builder_add(&builder,
273 "{sv}",
274 NM_PPP_IP6_CONFIG_OUR_IID,
275 g_variant_new_uint64(got.ourid));
296276 g_variant_builder_add(&builder,
297277 "{sv}",
298278 NM_PPP_IP6_CONFIG_PEER_IID,
299 eui64_to_variant(ho->hisid));
279 g_variant_new_uint64(his.hisid));
300280
301281 /* DNS is done via DHCPv6 or router advertisements */
302282
367347
368348 g_variant_get(ret, "(&s&s)", &my_username, &my_password);
369349
370 g_strlcpy(username, my_username, MAXNAMELEN);
371 g_strlcpy(password, my_password, MAXSECRETLEN);
350 g_strlcpy(username, my_username, NM_PPPD_COMPAT_MAXNAMELEN);
351 g_strlcpy(password, my_password, NM_PPPD_COMPAT_MAXSECRETLEN);
372352
373353 return 1;
374354 }
381361 /* We wait until this point to notify dead phase to make sure that
382362 * the serial port has recovered already its original settings.
383363 */
384 nm_phasechange(PHASE_DEAD);
364 nm_phasechange(NM_PPP_STATUS_DEAD);
385365
386366 g_message("nm-ppp-plugin: cleaning up");
387367
388368 g_clear_object(&gl.dbus_connection);
389369 nm_clear_g_free(&gl.ipparam);
390 }
391
392 static void
393 add_ip6_notifier(void)
394 {
395 static struct notifier **notifier = NULL;
396 static gsize load_once = 0;
397
398 if (g_once_init_enter(&load_once)) {
399 void *handle = dlopen(NULL, RTLD_NOW | RTLD_GLOBAL);
400
401 if (handle) {
402 notifier = dlsym(handle, "ipv6_up_notifier");
403 dlclose(handle);
404 }
405 g_once_init_leave(&load_once, 1);
406 }
407 if (notifier)
408 add_notifier(notifier, nm_ip6_up, NULL);
409 else
410 g_message("nm-ppp-plugin: no IPV6CP notifier support; IPv6 not available");
411370 }
412371
413372 int
426385 return -1;
427386 }
428387
429 gl.ipparam = g_strdup(ipparam);
430
431 chap_passwd_hook = get_credentials;
432 chap_check_hook = get_chap_check;
433 pap_passwd_hook = get_credentials;
434 pap_check_hook = get_pap_check;
435
436 add_notifier(&phasechange, nm_phasechange_hook, NULL);
437 add_notifier(&ip_up_notifier, nm_ip_up, NULL);
438 add_notifier(&exitnotify, nm_exit_notify, NULL);
439 add_ip6_notifier();
440
388 gl.ipparam = g_strdup(nm_pppd_compat_get_ipparam());
389
390 nm_pppd_compat_set_chap_passwd_hook(get_credentials);
391 nm_pppd_compat_set_chap_check_hook(get_chap_check);
392 nm_pppd_compat_set_pap_passwd_hook(get_credentials);
393 nm_pppd_compat_set_pap_check_hook(get_pap_check);
394
395 nm_pppd_compat_add_notify(NM_PPPD_COMPAT_NF_PHASE_CHANGE, nm_phasechange_hook, NULL);
396 nm_pppd_compat_add_notify(NM_PPPD_COMPAT_NF_IP_UP, nm_ip_up, NULL);
397 nm_pppd_compat_add_notify(NM_PPPD_COMPAT_NF_EXIT, nm_exit_notify, NULL);
398 nm_pppd_compat_add_notify(NM_PPPD_COMPAT_NF_IPV6_UP, nm_ip6_up, NULL);
441399 return 0;
442400 }
53765376 gs_free char *physdev = NULL;
53775377 gs_free char *pkey_id = NULL;
53785378 int id;
5379 int fixup_id = 0;
53795380
53805381 physdev = svGetValueStr_cp(ifcfg, "PHYSDEV");
53815382 if (!physdev) {
53865387 return FALSE;
53875388 }
53885389
5389 pkey_id = svGetValueStr_cp(ifcfg, "PKEY_ID");
5390 pkey_id = svGetValueStr_cp(ifcfg, "PKEY_ID_NM");
5391 if (!pkey_id) {
5392 /* Only check for "$PKEY_ID". That key is interpreted as having the
5393 * full membership flag set ("fixup_id"). */
5394 fixup_id = 0x8000;
5395 pkey_id = svGetValueStr_cp(ifcfg, "PKEY_ID");
5396 }
5397
53905398 if (!pkey_id) {
53915399 g_set_error(error,
53925400 NM_SETTINGS_ERROR,
54045412 pkey_id);
54055413 return FALSE;
54065414 }
5415
5416 id |= fixup_id;
54075417
54085418 *out_p_key = id;
54095419 *out_parent = g_steal_pointer(&physdev);
55755585 gs_free char *value_to_free = NULL;
55765586 const char *value;
55775587 guint queue_id;
5588 gint32 prio;
55785589
55795590 g_return_val_if_fail(ifcfg != NULL, FALSE);
55805591
55835594 s_port = nm_setting_bond_port_new();
55845595 queue_id =
55855596 _nm_utils_ascii_str_to_uint64(value, 10, 0, G_MAXUINT16, NM_BOND_PORT_QUEUE_ID_DEF);
5586 if (errno != 0) {
5587 PARSE_WARNING("Invalid bond port queue_id value '%s'", value);
5588 return s_port;
5589 }
5590 g_object_set(G_OBJECT(s_port), NM_SETTING_BOND_PORT_QUEUE_ID, queue_id, NULL);
5597 if (errno != 0)
5598 PARSE_WARNING("Invalid bond port queue_id value BOND_PORT_QUEUE_ID '%s'", value);
5599 else
5600 g_object_set(G_OBJECT(s_port), NM_SETTING_BOND_PORT_QUEUE_ID, queue_id, NULL);
5601 }
5602
5603 nm_clear_g_free(&value_to_free);
5604 value = svGetValue(ifcfg, "BOND_PORT_PRIO", &value_to_free);
5605 if (value) {
5606 if (!s_port)
5607 s_port = nm_setting_bond_port_new();
5608 prio =
5609 _nm_utils_ascii_str_to_int64(value, 10, G_MININT32, G_MAXINT32, NM_BOND_PORT_PRIO_DEF);
5610 if (errno != 0)
5611 PARSE_WARNING("Invalid bond port prio value BOND_PORT_PRIO '%s'", value);
5612 else
5613 g_object_set(G_OBJECT(s_port), NM_SETTING_BOND_PORT_PRIO, prio, NULL);
55915614 }
55925615
55935616 return s_port;
826826 _KEY_TYPE("BAND", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
827827 _KEY_TYPE("BONDING_MASTER", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
828828 _KEY_TYPE("BONDING_OPTS", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
829 _KEY_TYPE("BOND_PORT_PRIO", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
829830 _KEY_TYPE("BOND_PORT_QUEUE_ID", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
830831 _KEY_TYPE("BOOTPROTO", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
831832 _KEY_TYPE("BRIDGE", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
10301031 _KEY_TYPE("PHYSDEV", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
10311032 _KEY_TYPE("PKEY", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
10321033 _KEY_TYPE("PKEY_ID", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
1034 _KEY_TYPE("PKEY_ID_NM", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
10331035 _KEY_TYPE("PMF", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
10341036 _KEY_TYPE("PORTNAME", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
10351037 _KEY_TYPE("POWERSAVE", NMS_IFCFG_KEY_TYPE_IS_PLAIN),
3232 NMSIfcfgKeyTypeFlags key_flags;
3333 } NMSIfcfgKeyTypeInfo;
3434
35 extern const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[261];
35 extern const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[263];
3636
3737 const NMSIfcfgKeyTypeInfo *nms_ifcfg_well_known_key_find_info(const char *key, gssize *out_idx);
3838
10221022 }
10231023
10241024 static gboolean
1025 write_infiniband_setting(NMConnection *connection, shvarFile *ifcfg, GError **error)
1025 write_infiniband_setting(NMConnection *connection,
1026 shvarFile *ifcfg,
1027 char **out_interface_name,
1028 GError **error)
10261029 {
10271030 NMSettingInfiniband *s_infiniband;
10281031 const char *mac, *transport_mode, *parent;
10511054 p_key = nm_setting_infiniband_get_p_key(s_infiniband);
10521055 if (p_key != -1) {
10531056 svSetValueStr(ifcfg, "PKEY", "yes");
1057
10541058 svSetValueInt64(ifcfg, "PKEY_ID", p_key);
10551059
1060 if (!NM_FLAGS_HAS(p_key, 0x8000)) {
1061 /* initscripts' ifup-ib used to always interpret the PKEY_ID with
1062 * the full membership flag (0x8000) set. For compatibility, we do
1063 * interpret PKEY_ID as having that flag set.
1064 *
1065 * However, now we want to persist a p-key which doesn't have the
1066 * flag. Use a NetworkManager specific variable for that. This configuration
1067 * is not supported by initscripts' ifup-ib.
1068 */
1069 svSetValueInt64(ifcfg, "PKEY_ID_NM", p_key);
1070 }
1071
10561072 parent = nm_setting_infiniband_get_parent(s_infiniband);
1057 if (parent)
1058 svSetValueStr(ifcfg, "PHYSDEV", parent);
1073 svSetValueStr(ifcfg, "PHYSDEV", parent);
10591074 }
10601075
10611076 svSetValueStr(ifcfg, "TYPE", TYPE_INFINIBAND);
19101925 NMSettingBondPort *s_port;
19111926
19121927 s_port = _nm_connection_get_setting(connection, NM_TYPE_SETTING_BOND_PORT);
1913 if (s_port)
1928 if (s_port) {
19141929 svSetValueInt64(ifcfg, "BOND_PORT_QUEUE_ID", nm_setting_bond_port_get_queue_id(s_port));
1930 svSetValueInt64(ifcfg, "BOND_PORT_PRIO", nm_setting_bond_port_get_prio(s_port));
1931 }
19151932 }
19161933
19171934 static gboolean
20922109 }
20932110
20942111 static void
2095 write_connection_setting(NMSettingConnection *s_con, shvarFile *ifcfg)
2112 write_connection_setting(NMSettingConnection *s_con, shvarFile *ifcfg, const char *interface_name)
20962113 {
20972114 guint32 n, i;
20982115 nm_auto_free_gstring GString *str = NULL;
21092126 svSetValueStr(ifcfg, "NAME", nm_setting_connection_get_id(s_con));
21102127 svSetValueStr(ifcfg, "UUID", nm_setting_connection_get_uuid(s_con));
21112128 svSetValueStr(ifcfg, "STABLE_ID", nm_setting_connection_get_stable_id(s_con));
2112 svSetValueStr(ifcfg, "DEVICE", nm_setting_connection_get_interface_name(s_con));
2129 svSetValueStr(ifcfg,
2130 "DEVICE",
2131 interface_name ?: nm_setting_connection_get_interface_name(s_con));
21132132 svSetValueBoolean(ifcfg, "ONBOOT", nm_setting_connection_get_autoconnect(s_con));
21142133
21152134 vint = nm_setting_connection_get_autoconnect_priority(s_con);
33073326 nm_auto_shvar_file_close shvarFile *route_content_svformat = NULL;
33083327 nm_auto_free_gstring GString *route_content = NULL;
33093328 nm_auto_free_gstring GString *route6_content = NULL;
3329 gs_free char *interface_name = NULL;
33103330
33113331 nm_assert(NM_IS_CONNECTION(connection));
33123332 nm_assert(_nm_connection_verify(connection, NULL) == NM_SETTING_VERIFY_SUCCESS);
34123432 if (!write_wireless_setting(connection, ifcfg, secrets, &no_8021x, error))
34133433 return FALSE;
34143434 } else if (!strcmp(type, NM_SETTING_INFINIBAND_SETTING_NAME)) {
3415 if (!write_infiniband_setting(connection, ifcfg, error))
3435 if (!write_infiniband_setting(connection, ifcfg, &interface_name, error))
34163436 return FALSE;
34173437 } else if (!strcmp(type, NM_SETTING_BOND_SETTING_NAME)) {
34183438 if (!write_bond_setting(connection, ifcfg, &wired, error))
35173537
35183538 write_ip_routing_rules(connection, ifcfg, route_ignore);
35193539
3520 write_connection_setting(s_con, ifcfg);
3540 write_connection_setting(s_con, ifcfg, interface_name);
35213541
35223542 NM_SET_OUT(out_ifcfg, g_steal_pointer(&ifcfg));
35233543 NM_SET_OUT(out_blobs, g_steal_pointer(&blobs));
+0
-8
src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-infiniband less more
0 TYPE=InfiniBand
1 DEVICE=ib0
2 HWADDR=80:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22
3 CONNECTED_MODE=yes
4 MTU=65520
5 IPADDR=192.168.2.2
6 NETMASK=255.255.255.0
7 GATEWAY=192.168.2.1
0 TYPE=InfiniBand
1 DEVICE=ib0
2 HWADDR=80:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22
3 CONNECTED_MODE=yes
4 MTU=65520
5 IPADDR=192.168.2.2
6 NETMASK=255.255.255.0
7 GATEWAY=192.168.2.1
0 TYPE=InfiniBand
1 HWADDR=80:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22
2 CONNECTED_MODE=yes
3 MTU=65520
4 IPADDR=192.168.2.2
5 NETMASK=255.255.255.0
6 GATEWAY=192.168.2.1
7
8 DEVICE=ib0.80c1
9 PKEY=yes
10 PKEY_ID=0x00c1
11 PHYSDEV=ib0
0 TYPE=InfiniBand
1 HWADDR=80:00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00:11:22
2 CONNECTED_MODE=yes
3 MTU=65520
4 IPADDR=192.168.2.2
5 NETMASK=255.255.255.0
6 GATEWAY=192.168.2.1
7
8 DEVICE=ib0.00c1
9 PKEY=yes
10 PKEY_ID=0x00c1
11 PHYSDEV=ib0
83518351
83528352 s_bond_port = _nm_connection_new_setting(connection, NM_TYPE_SETTING_BOND_PORT);
83538353 g_object_set(s_bond_port, NM_SETTING_BOND_PORT_QUEUE_ID, 1, NULL);
8354 g_object_set(s_bond_port, NM_SETTING_BOND_PORT_PRIO, 10, NULL);
83548355
83558356 nmtst_assert_connection_verifies(connection);
83568357
83628363 }
83638364
83648365 static void
8365 test_read_infiniband(void)
8366 {
8366 test_read_infiniband(gconstpointer test_data)
8367 {
8368 const guint TEST_IDX = GPOINTER_TO_UINT(test_data);
83678369 gs_unref_object NMConnection *connection = NULL;
83688370 NMSettingInfiniband *s_infiniband;
83698371 char *unmanaged = NULL;
83728374 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc,
83738375 0xdd, 0xee, 0xff, 0x00, 0x11, 0x22};
83748376 const char *transport_mode;
8375
8376 connection = _connection_from_file(TEST_IFCFG_DIR "/ifcfg-test-infiniband",
8377 NULL,
8378 TYPE_INFINIBAND,
8379 &unmanaged);
8377 const char *test_files[] = {
8378 TEST_IFCFG_DIR "/ifcfg-test-infiniband0",
8379 TEST_IFCFG_DIR "/ifcfg-test-infiniband1",
8380 TEST_IFCFG_DIR "/ifcfg-test-infiniband2",
8381 };
8382
8383 g_assert(TEST_IDX < G_N_ELEMENTS(test_files));
8384
8385 connection = _connection_from_file(test_files[TEST_IDX], NULL, TYPE_INFINIBAND, &unmanaged);
83808386 g_assert(!unmanaged);
83818387
83828388 s_infiniband = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_INFINIBAND);
83888394 transport_mode = nm_setting_infiniband_get_transport_mode(s_infiniband);
83898395 g_assert(transport_mode);
83908396 g_assert_cmpstr(transport_mode, ==, "connected");
8397
8398 nmtst_assert_connection_verifies_without_normalization(connection);
8399
8400 switch (TEST_IDX) {
8401 case 0:
8402 g_assert_cmpint(nm_setting_infiniband_get_p_key(s_infiniband), ==, -1);
8403 g_assert_cmpstr(nm_setting_infiniband_get_parent(s_infiniband), ==, NULL);
8404 g_assert_cmpstr(nm_connection_get_interface_name(connection), ==, "ib0");
8405 break;
8406 case 1:
8407 case 2:
8408 g_assert_cmpint(nm_setting_infiniband_get_p_key(s_infiniband), ==, 0x80c1);
8409 g_assert_cmpstr(nm_setting_infiniband_get_parent(s_infiniband), ==, "ib0");
8410 g_assert_cmpstr(nm_connection_get_interface_name(connection), ==, "ib0.80c1");
8411 break;
8412 default:
8413 g_assert_not_reached();
8414 break;
8415 }
83918416 }
83928417
83938418 static void
84088433 s_infiniband = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_INFINIBAND);
84098434
84108435 pkey = nm_setting_infiniband_get_p_key(s_infiniband);
8411 g_assert(pkey);
8412 g_assert_cmpint(pkey, ==, 12);
8436 g_assert_cmpint(pkey, ==, 0x800c);
84138437
84148438 transport_mode = nm_setting_infiniband_get_transport_mode(s_infiniband);
8415 g_assert(transport_mode);
84168439 g_assert_cmpstr(transport_mode, ==, "connected");
84178440 }
84188441
84198442 static void
84208443 test_write_infiniband(gconstpointer test_data)
84218444 {
8422 const int TEST_IDX = GPOINTER_TO_INT(test_data);
8423 nmtst_auto_unlinkfile char *testfile = NULL;
8424 gs_unref_object NMConnection *connection = NULL;
8425 gs_unref_object NMConnection *reread = NULL;
8445 const int TEST_IDX = GPOINTER_TO_INT(test_data);
8446 nmtst_auto_unlinkfile char *testfile = NULL;
8447 gs_unref_object NMConnection *connection = NULL;
8448 gs_unref_object NMConnection *reread = NULL;
8449 gboolean reread_same = FALSE;
84268450 NMSettingConnection *s_con;
84278451 NMSettingInfiniband *s_infiniband;
84288452 NMSettingIPConfig *s_ip4;
84328456 NMIPAddress *addr;
84338457 GError *error = NULL;
84348458 const char *interface_name = NULL;
8459 int p_key;
84358460
84368461 connection = nm_simple_connection_new();
84378462
84478472 NM_SETTING_INFINIBAND_SETTING_NAME,
84488473 NULL);
84498474
8450 if (NM_IN_SET(TEST_IDX, 1, 3))
8451 interface_name = "ib0.000c";
8475 if (NM_IN_SET(TEST_IDX, 1, 2))
8476 p_key = nmtst_get_rand_bool() ? 0x000c : 0x800c;
8477 else
8478 p_key = -1;
8479
8480 if (NM_IN_SET(TEST_IDX, 1, 3)) {
8481 if (p_key >= 0x8000)
8482 interface_name = "ib0.800c";
8483 }
84528484
84538485 g_object_set(s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, interface_name, NULL);
84548486
84558487 s_infiniband = _nm_connection_new_setting(connection, NM_TYPE_SETTING_INFINIBAND);
84568488 g_object_set(s_infiniband, NM_SETTING_INFINIBAND_TRANSPORT_MODE, "connected", NULL);
8457 if (NM_IN_SET(TEST_IDX, 1, 2)) {
8489 if (p_key == -1) {
84588490 g_object_set(s_infiniband,
84598491 NM_SETTING_INFINIBAND_MAC_ADDRESS,
84608492 mac,
84648496 } else {
84658497 g_object_set(s_infiniband,
84668498 NM_SETTING_INFINIBAND_P_KEY,
8467 12,
8499 p_key,
84688500 NM_SETTING_INFINIBAND_PARENT,
84698501 "ib0",
84708502 NULL);
84938525
84948526 nmtst_assert_connection_verifies(connection);
84958527
8496 _writer_new_connection(connection, TEST_SCRATCH_DIR, &testfile);
8497
8498 reread = _connection_from_file(testfile, NULL, TYPE_INFINIBAND, NULL);
8499
8500 nmtst_assert_connection_equals(connection, TRUE, reread, FALSE);
8528 _writer_new_connection_reread(connection,
8529 TEST_SCRATCH_DIR,
8530 &testfile,
8531 NO_EXPECTED,
8532 &reread,
8533 &reread_same);
8534 _assert_reread_same(connection, reread);
8535 g_assert(reread_same);
85018536
85028537 g_assert_cmpstr(interface_name, ==, nm_connection_get_interface_name(reread));
8538 g_assert_cmpint(nm_setting_infiniband_get_p_key(
8539 _nm_connection_get_setting(reread, NM_TYPE_SETTING_INFINIBAND)),
8540 ==,
8541 p_key);
85038542 }
85048543
85058544 static void
1067110710
1067210711 g_test_add_func(TPATH "wifi/read/wep-no-keys", test_read_wifi_wep_no_keys);
1067310712 g_test_add_func(TPATH "wifi/read/wep-agent-keys", test_read_wifi_wep_agent_keys);
10674 g_test_add_func(TPATH "infiniband/read", test_read_infiniband);
10713 g_test_add_data_func(TPATH "infiniband/read/0", GUINT_TO_POINTER(0), test_read_infiniband);
10714 g_test_add_data_func(TPATH "infiniband/read/1", GUINT_TO_POINTER(1), test_read_infiniband);
10715 g_test_add_data_func(TPATH "infiniband/read/2", GUINT_TO_POINTER(2), test_read_infiniband);
1067510716 g_test_add_func(TPATH "ipoib/read", test_read_ipoib);
1067610717 g_test_add_func(TPATH "vlan/read", test_read_vlan_interface);
1067710718 g_test_add_func(TPATH "vlan/read-flags-1", test_read_vlan_flags_1);
391391 /****************************************************************************/
392392
393393 #define NM_BOND_PORT_QUEUE_ID_DEF 0
394 #define NM_BOND_PORT_PRIO_DEF 0
394395
395396 /****************************************************************************/
396397
18781878 nm_vpn_plugin_info_supports_multiple;
18791879 } libnm_1_40_0;
18801880
1881 libnm_1_40_20_bondp {
1882 global:
1883 nm_setting_bond_port_get_prio;
1884 } libnm_1_40_0;
1885
18811886 libnm_1_42_0 {
18821887 global:
18831888 nm_client_get_version_info;
66 from __future__ import print_function
77 import xml.etree.ElementTree as ET
88 import argparse
9 import re
910 import sys
1011
1112 C_NS = "http://www.gtk.org/introspection/c/1.0"
5960 return string
6061
6162
62 # Older Python doesn't have str.removeprefix()
63 def str_removeprefix(string, prefix):
64 try:
65 return string.removeprefix(prefix)
66 except AttributeError:
67 if string.startswith(prefix):
68 return string[len(prefix) :]
69 else:
70 return string
71
72
7363 def syms_from_ver(verfile):
7464 c_syms = {}
7565 for line in open(verfile).readlines():
7767
7868 if line.endswith("{"):
7969 line = str_removesuffix(line, " {")
80 line = str_removeprefix(line, "libnm_")
81 (major, minor, micro) = line.split("_")
70 m = re.search(r"^libnm_([0-9]+)_([0-9]+)_([0-9]+)$", line)
71 if not m:
72 continue
73 (major, minor, micro) = m.groups()
8274 if int(major) > 1 or int(minor) > 0:
8375 if int(micro) > 0:
8476 # Snap to next major version. Perhaps not
9688 ):
9789 c_syms[str_removesuffix(line, ";")] = version
9890
99 # This one is... messy.
91 # These are exceptions and we cannot know the version for the symbol so we
92 # hardcode it.
10093 c_syms["nm_ethtool_optname_is_feature"] = "1.20"
94 c_syms["nm_setting_bond_port_get_prio"] = "1.44"
10195
10296 return c_syms
10397
581581 <setting name="bond-port"
582582 gtype="NMSettingBondPort"
583583 >
584 <property name="prio"
585 dbus-type="i"
586 gprop-type="gint"
587 />
584588 <property name="queue-id"
585589 dbus-type="u"
586590 gprop-type="guint"
13311331 }
13321332
13331333 static gboolean
1334 _normalize_infiniband_mtu(NMConnection *self)
1334 _normalize_infiniband(NMConnection *self)
13351335 {
13361336 NMSettingInfiniband *s_infini = nm_connection_get_setting_infiniband(self);
1337
1338 if (!s_infini || nm_setting_infiniband_get_mtu(s_infini) <= NM_INFINIBAND_MAX_MTU
1339 || !NM_IN_STRSET(nm_setting_infiniband_get_transport_mode(s_infini),
1337 gboolean changed = FALSE;
1338 const char *interface_name;
1339 int p_key;
1340
1341 if (!s_infini)
1342 return FALSE;
1343
1344 if (nm_setting_infiniband_get_mtu(s_infini) > NM_INFINIBAND_MAX_MTU) {
1345 if (NM_IN_STRSET(nm_setting_infiniband_get_transport_mode(s_infini),
13401346 "datagram",
1341 "connected"))
1342 return FALSE;
1343
1344 g_object_set(s_infini, NM_SETTING_INFINIBAND_MTU, (guint) NM_INFINIBAND_MAX_MTU, NULL);
1345 return TRUE;
1347 "connected")) {
1348 g_object_set(s_infini, NM_SETTING_INFINIBAND_MTU, (guint) NM_INFINIBAND_MAX_MTU, NULL);
1349 changed = TRUE;
1350 }
1351 }
1352
1353 if ((p_key = nm_setting_infiniband_get_p_key(s_infini)) != -1
1354 && (interface_name = nm_connection_get_interface_name(self))) {
1355 const char *virtual_iface_name;
1356
1357 virtual_iface_name = nm_setting_infiniband_get_virtual_interface_name(s_infini);
1358
1359 if (!nm_streq0(interface_name, virtual_iface_name)) {
1360 g_object_set(nm_connection_get_setting_connection(self),
1361 NM_SETTING_CONNECTION_INTERFACE_NAME,
1362 virtual_iface_name,
1363 NULL);
1364 changed = TRUE;
1365 }
1366 }
1367
1368 return changed;
13461369 }
13471370
13481371 static gboolean
19852008 was_modified |= _normalize_invalid_slave_port_settings(connection);
19862009 was_modified |= _normalize_ip_config(connection, parameters);
19872010 was_modified |= _normalize_ethernet_link_neg(connection);
1988 was_modified |= _normalize_infiniband_mtu(connection);
2011 was_modified |= _normalize_infiniband(connection);
19892012 was_modified |= _normalize_bond_mode(connection);
19902013 was_modified |= _normalize_bond_options(connection);
19912014 was_modified |= _normalize_wireless_mac_address_randomization(connection);
2121
2222 /*****************************************************************************/
2323
24 NM_GOBJECT_PROPERTIES_DEFINE(NMSettingBondPort, PROP_QUEUE_ID, );
24 NM_GOBJECT_PROPERTIES_DEFINE(NMSettingBondPort, PROP_QUEUE_ID, PROP_PRIO, );
2525
2626 typedef struct {
27 gint32 prio;
2728 guint32 queue_id;
2829 } NMSettingBondPortPrivate;
2930
6263 g_return_val_if_fail(NM_IS_SETTING_BOND_PORT(setting), 0);
6364
6465 return NM_SETTING_BOND_PORT_GET_PRIVATE(setting)->queue_id;
66 }
67
68 /**
69 * nm_setting_bond_port_get_prio:
70 * @setting: the #NMSettingBondPort
71 *
72 * Returns: the #NMSettingBondPort:prio property of the setting
73 *
74 * Since: 1.44, 1.42.8
75 **/
76 gint32
77 nm_setting_bond_port_get_prio(NMSettingBondPort *setting)
78 {
79 g_return_val_if_fail(NM_IS_SETTING_BOND_PORT(setting), 0);
80
81 return NM_SETTING_BOND_PORT_GET_PRIVATE(setting)->prio;
6582 }
6683
6784 /*****************************************************************************/
147164 **/
148165 /* ---ifcfg-rh---
149166 * property: queue-id
150 * variable: BONDING_OPTS: queue-id=
167 * variable: BOND_PORT_QUEUE_ID(+)
151168 * values: 0 - 65535
152169 * default: 0
153170 * description: Queue ID.
164181 NMSettingBondPort,
165182 _priv.queue_id);
166183
184 /**
185 * NMSettingBondPort:prio:
186 *
187 * The port priority for bond active port re-selection during failover. A
188 * higher number means a higher priority in selection. The primary port has
189 * the highest priority. This option is only compatible with active-backup,
190 * balance-tlb and balance-alb modes.
191 *
192 * Since: 1.44, 1.42.8
193 **/
194 /* ---ifcfg-rh---
195 * property: prio
196 * variable: BOND_PORT_PRIO(+)
197 * values: -2147483648 - 2147483647
198 * default: 0
199 * description: Port priority.
200 * ---end---
201 */
202 _nm_setting_property_define_direct_int32(properties_override,
203 obj_properties,
204 NM_SETTING_BOND_PORT_PRIO,
205 PROP_PRIO,
206 G_MININT32,
207 G_MAXINT32,
208 NM_BOND_PORT_PRIO_DEF,
209 NM_SETTING_PARAM_INFERRABLE,
210 NMSettingBondPort,
211 _priv.prio);
212
167213 g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties);
168214
169215 _nm_setting_class_commit(setting_class,
99 #include <stdlib.h>
1010 #include <linux/if_infiniband.h>
1111
12 #include "libnm-platform/nmp-base.h"
1213 #include "nm-utils.h"
1314 #include "nm-utils-private.h"
1415 #include "nm-setting-private.h"
143144 return NM_SETTING_INFINIBAND_GET_PRIVATE(setting)->parent;
144145 }
145146
147 char *
148 nm_setting_infiniband_create_virtual_interface_name(const char *parent, int p_key)
149 {
150 char *s;
151
152 s = g_strdup_printf("%s.%04x", parent, (guint) p_key);
153 if (strlen(s) >= NMP_IFNAMSIZ)
154 s[NMP_IFNAMSIZ - 1] = '\0';
155 return s;
156 }
157
146158 /**
147159 * nm_setting_infiniband_get_virtual_interface_name:
148160 * @setting: the #NMSettingInfiniband
171183 priv->virtual_iface_name_p_key = priv->p_key;
172184 priv->virtual_iface_name_parent_length = len;
173185 g_free(priv->virtual_iface_name);
174 priv->virtual_iface_name = g_strdup_printf("%s.%04x", priv->parent, priv->p_key);
186 priv->virtual_iface_name =
187 nm_setting_infiniband_create_virtual_interface_name(priv->parent, priv->p_key);
175188 }
176189
177190 return priv->virtual_iface_name;
180193 static gboolean
181194 verify(NMSetting *setting, NMConnection *connection, GError **error)
182195 {
183 NMSettingConnection *s_con = NULL;
184 NMSettingInfinibandPrivate *priv = NM_SETTING_INFINIBAND_GET_PRIVATE(setting);
196 NMSettingConnection *s_con;
197 NMSettingInfinibandPrivate *priv = NM_SETTING_INFINIBAND_GET_PRIVATE(setting);
185198
186199 if (priv->mac_address && !nm_utils_hwaddr_valid(priv->mac_address, INFINIBAND_ALEN)) {
187200 g_set_error_literal(error,
250263 }
251264 }
252265
253 if (connection)
254 s_con = nm_connection_get_setting_connection(connection);
266 /* *** errors above here should be always fatal, below NORMALIZABLE_ERROR *** */
267
268 s_con = connection ? nm_connection_get_setting_connection(connection) : NULL;
269
255270 if (s_con) {
256271 const char *interface_name = nm_setting_connection_get_interface_name(s_con);
257272
286301 "%s.%s: ",
287302 NM_SETTING_CONNECTION_SETTING_NAME,
288303 NM_SETTING_CONNECTION_INTERFACE_NAME);
289 return FALSE;
304 return NM_SETTING_VERIFY_NORMALIZABLE_ERROR;
290305 }
291306 }
292307 }
293
294 /* *** errors above here should be always fatal, below NORMALIZABLE_ERROR *** */
295308
296309 if (priv->mtu > NM_INFINIBAND_MAX_MTU) {
297310 /* Traditionally, MTU for "datagram" mode was limited to 2044
447460 /**
448461 * NMSettingInfiniband:p-key:
449462 *
450 * The InfiniBand P_Key to use for this device. A value of -1 means to use
451 * the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit
452 * unsigned integer, whose high bit is set if it is a "full membership"
453 * P_Key.
463 * The InfiniBand p-key to use for this device. A value of -1 means to use
464 * the default p-key (aka "the p-key at index 0"). Otherwise, it is a
465 * 16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full
466 * membership" p-key. The values 0 and 0x8000 are not allowed.
467 *
468 * With the p-key set, the interface name is always "$parent.$p_key".
469 * Setting "connection.interface-name" to another name is not supported.
470 *
471 * Note that kernel will internally always set the full membership bit,
472 * although the interface name does not reflect that. Usually the user
473 * would want to configure a full membership p-key with 0x8000 flag set.
454474 **/
455475 /* ---ifcfg-rh---
456476 * property: p-key
457 * variable: PKEY_ID (and PKEY=yes)
477 * variable: PKEY_ID or PKEY_ID_NM(*) (requires PKEY=yes)
458478 * default: PKEY=no
459479 * description: InfiniBand P_Key. The value can be a hex number prefixed with "0x"
460480 * or a decimal number.
461 * When PKEY_ID is specified, PHYSDEV and DEVICE also must be specified.
481 * When PKEY_ID is specified, PHYSDEV must be specified.
482 * Note that ifcfg-rh format will always automatically set the full membership
483 * flag 0x8000 for the PKEY_ID variable. To express IDs without the full membership
484 * flag, use PKEY_ID_NM. Note that kernel internally treats the interface as
485 * having the full membership flag set, this mainly affects the interface name.
486 * For the ifcfg file to be supported by initscripts' ifup-ib, the DEVICE=
487 * must always be set. NetworkManager does not require that.
462488 * example: PKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0.8002
463489 * ---end---
464490 */
61556155 }
61566156
61576157 static void
6158 test_connection_normalize_infiniband_mtu(void)
6158 test_connection_normalize_infiniband(void)
61596159 {
61606160 gs_unref_object NMConnection *con = NULL;
61616161 NMSettingInfiniband *s_infini;
6162 NMSettingConnection *s_con;
61626163 guint mtu_regular = nmtst_rand_select(2044, 2045, 65520);
61636164
6164 con = nmtst_create_minimal_connection("test_connection_normalize_infiniband_mtu",
6165 con = nmtst_create_minimal_connection("test_connection_normalize_infiniband",
61656166 NULL,
61666167 NM_SETTING_INFINIBAND_SETTING_NAME,
6167 NULL);
6168 &s_con);
61686169
61696170 s_infini = nm_connection_get_setting_infiniband(con);
61706171 g_object_set(s_infini, NM_SETTING_INFINIBAND_TRANSPORT_MODE, "connected", NULL);
62126213 NM_CONNECTION_ERROR_INVALID_PROPERTY);
62136214 nmtst_connection_normalize(con);
62146215 g_assert_cmpint(65520, ==, nm_setting_infiniband_get_mtu(s_infini));
6216
6217 g_object_set(s_infini,
6218 NM_SETTING_INFINIBAND_PARENT,
6219 "foo",
6220 NM_SETTING_INFINIBAND_P_KEY,
6221 0x005c,
6222 NULL);
6223 nmtst_assert_connection_verifies_without_normalization(con);
6224
6225 g_object_set(s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, "foo.005c", NULL);
6226 nmtst_assert_connection_verifies_without_normalization(con);
6227
6228 g_object_set(s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, "foo", NULL);
6229 nmtst_assert_connection_verifies_after_normalization(con,
6230 NM_CONNECTION_ERROR,
6231 NM_CONNECTION_ERROR_INVALID_PROPERTY);
6232
6233 nmtst_connection_normalize(con);
6234 g_assert_cmpstr(nm_connection_get_interface_name(con), ==, "foo.005c");
6235
6236 g_object_set(s_infini,
6237 NM_SETTING_INFINIBAND_PARENT,
6238 "x234567890123",
6239 NM_SETTING_INFINIBAND_P_KEY,
6240 0x005c,
6241 NULL);
6242 nmtst_assert_connection_verifies_after_normalization(con,
6243 NM_CONNECTION_ERROR,
6244 NM_CONNECTION_ERROR_INVALID_PROPERTY);
6245
6246 nmtst_connection_normalize(con);
6247 g_assert_cmpstr(nm_connection_get_interface_name(con), ==, "x234567890123.0");
6248
6249 #define iface_name(parent, p_key, expected) \
6250 G_STMT_START \
6251 { \
6252 gs_free char *_s = nm_setting_infiniband_create_virtual_interface_name((parent), (p_key)); \
6253 \
6254 g_assert(nm_utils_ifname_valid_kernel(_s, NULL)); \
6255 g_assert_cmpstr(_s, ==, (expected)); \
6256 } \
6257 G_STMT_END
6258
6259 iface_name("foo", 15, "foo.000f");
6260 iface_name("x23456789012345", 15, "x23456789012345");
6261 iface_name("x2345678901234", 15, "x2345678901234.");
6262 iface_name("x234567890123", 15, "x234567890123.0");
6263 iface_name("x23456789012", 15, "x23456789012.00");
6264 iface_name("x2345678901", 15, "x2345678901.000");
6265 iface_name("x234567890", 15, "x234567890.000f");
6266 iface_name("x23456789", 15, "x23456789.000f");
62156267 }
62166268
62176269 static void
1151011562 test_connection_normalize_slave_type_1);
1151111563 g_test_add_func("/core/general/test_connection_normalize_slave_type_2",
1151211564 test_connection_normalize_slave_type_2);
11513 g_test_add_func("/core/general/test_connection_normalize_infiniband_mtu",
11514 test_connection_normalize_infiniband_mtu);
11565 g_test_add_func("/core/general/test_connection_normalize_infiniband",
11566 test_connection_normalize_infiniband);
1151511567 g_test_add_func("/core/general/test_connection_normalize_gateway_never_default",
1151611568 test_connection_normalize_gateway_never_default);
1151711569 g_test_add_func("/core/general/test_connection_normalize_may_fail",
321321 const char **
322322 _nm_ip_address_get_attribute_names(const NMIPAddress *addr, gboolean sorted, guint *out_length);
323323
324 char *nm_setting_infiniband_create_virtual_interface_name(const char *parent, int p_key);
325
324326 #define NM_SETTING_WIRED_S390_OPTION_MAX_LEN 200u
325327
326328 void _nm_setting_wired_clear_s390_options(NMSettingWired *setting);
2828 #define NM_SETTING_BOND_PORT_SETTING_NAME "bond-port"
2929
3030 #define NM_SETTING_BOND_PORT_QUEUE_ID "queue-id"
31 #define NM_SETTING_BOND_PORT_PRIO "prio"
3132
3233 typedef struct _NMSettingBondPortClass NMSettingBondPortClass;
3334
4041 NM_AVAILABLE_IN_1_34
4142 guint32 nm_setting_bond_port_get_queue_id(NMSettingBondPort *setting);
4243
44 NM_AVAILABLE_IN_1_42_8
45 gint32 nm_setting_bond_port_get_prio(NMSettingBondPort *setting);
46
4347 G_END_DECLS
4448
4549 #endif /* __NM_SETTING_BOND_PORT_H__ */
2929 * Evaluates to the micro version number of NetworkManager which this source
3030 * compiled against.
3131 */
32 #define NM_MICRO_VERSION (6)
32 #define NM_MICRO_VERSION (8)
3333
3434 /**
3535 * NM_CHECK_VERSION:
7272 #define NM_VERSION_1_40 (NM_ENCODE_VERSION(1, 40, 0))
7373 #define NM_VERSION_1_42 (NM_ENCODE_VERSION(1, 42, 0))
7474 #define NM_VERSION_1_42_2 (NM_ENCODE_VERSION(1, 42, 2))
75 #define NM_VERSION_1_42_8 (NM_ENCODE_VERSION(1, 42, 8))
7576
7677 /* For releases, NM_API_VERSION is equal to NM_VERSION.
7778 *
7272 #define NM_VERSION_1_40 (NM_ENCODE_VERSION(1, 40, 0))
7373 #define NM_VERSION_1_42 (NM_ENCODE_VERSION(1, 42, 0))
7474 #define NM_VERSION_1_42_2 (NM_ENCODE_VERSION(1, 42, 2))
75 #define NM_VERSION_1_42_8 (NM_ENCODE_VERSION(1, 42, 8))
7576
7677 /* For releases, NM_API_VERSION is equal to NM_VERSION.
7778 *
358358 #define NM_AVAILABLE_IN_1_42_2 G_UNAVAILABLE(1, 42.2)
359359 #else
360360 #define NM_AVAILABLE_IN_1_42_2
361 #endif
362
363 #if NM_VERSION_MAX_ALLOWED < NM_VERSION_1_42_8
364 #define NM_AVAILABLE_IN_1_42_8 G_UNAVAILABLE(1, 42.8)
365 #else
366 #define NM_AVAILABLE_IN_1_42_8
361367 #endif
362368
363369 /*
8989 TRUE; \
9090 })
9191 #endif
92
93 /*****************************************************************************/
94
95 typedef enum _nm_packed {
96 /* No type, empty value */
97 NM_PORT_KIND_NONE,
98 NM_PORT_KIND_BOND,
99 } NMPortKind;
92100
93101 /*****************************************************************************/
94102
175175 #define IFLA_PERM_ADDRESS 54
176176
177177 /*****************************************************************************/
178
179 #define IFLA_BOND_SLAVE_PRIO 9
178180
179181 #define IFLA_BOND_PEER_NOTIF_DELAY 28
180182
33463348
33473349 if (tb[IFLA_LINKINFO]) {
33483350 static const struct nla_policy policy_link_info[] = {
3349 [IFLA_INFO_KIND] = {.type = NLA_STRING},
3350 [IFLA_INFO_DATA] = {.type = NLA_NESTED},
3351 [IFLA_INFO_XSTATS] = {.type = NLA_NESTED},
3351 [IFLA_INFO_KIND] = {.type = NLA_STRING},
3352 [IFLA_INFO_DATA] = {.type = NLA_NESTED},
3353 [IFLA_INFO_XSTATS] = {.type = NLA_NESTED},
3354 [IFLA_INFO_SLAVE_KIND] = {.type = NLA_STRING},
3355 [IFLA_INFO_SLAVE_DATA] = {.type = NLA_NESTED},
33523356 };
33533357 struct nlattr *li[G_N_ELEMENTS(policy_link_info)];
33543358
33593363 nl_info_kind = nla_get_string(li[IFLA_INFO_KIND]);
33603364
33613365 nl_info_data = li[IFLA_INFO_DATA];
3366
3367 if (li[IFLA_INFO_SLAVE_KIND]) {
3368 const char *s = nla_get_string(li[IFLA_INFO_SLAVE_KIND]);
3369
3370 if (nm_streq(s, "bond"))
3371 obj->link.port_kind = NM_PORT_KIND_BOND;
3372 }
3373
3374 if (li[IFLA_INFO_SLAVE_DATA]) {
3375 static const struct nla_policy policy_bond_port[] = {
3376 [IFLA_BOND_SLAVE_QUEUE_ID] = {.type = NLA_U16},
3377 [IFLA_BOND_SLAVE_PRIO] = {.type = NLA_S32},
3378 };
3379 struct nlattr *bp[G_N_ELEMENTS(policy_bond_port)];
3380
3381 switch (obj->link.port_kind) {
3382 case NM_PORT_KIND_BOND:
3383 if (nla_parse_nested_arr(bp, li[IFLA_INFO_SLAVE_DATA], policy_bond_port) < 0)
3384 return NULL;
3385
3386 if (bp[IFLA_BOND_SLAVE_QUEUE_ID])
3387 obj->link.port_data.bond.queue_id = nla_get_u16(bp[IFLA_BOND_SLAVE_QUEUE_ID]);
3388
3389 if (bp[IFLA_BOND_SLAVE_PRIO]) {
3390 obj->link.port_data.bond.prio = nla_get_s32(bp[IFLA_BOND_SLAVE_PRIO]);
3391 obj->link.port_data.bond.prio_has = TRUE;
3392 if (!_nm_platform_kernel_support_detected(
3393 NM_PLATFORM_KERNEL_SUPPORT_TYPE_IFLA_BOND_SLAVE_PRIO)) {
3394 /* support for IFLA_BOND_SLAVE_PRIO was added in 0a2ff7cc8ad48a86939a91bd3457f38e59e741a1,
3395 * kernel 6.0, 2 October 2022.
3396 *
3397 * We can only detect support if the attribute is present. A missing attribute
3398 * is not conclusive. */
3399 _nm_platform_kernel_support_init(
3400 NM_PLATFORM_KERNEL_SUPPORT_TYPE_IFLA_BOND_SLAVE_PRIO,
3401 1);
3402 }
3403 }
3404 break;
3405 case NM_PORT_KIND_NONE:
3406 break;
3407 }
3408 }
33623409 }
33633410
33643411 if (tb[IFLA_STATS64]) {
82768323 }
82778324
82788325 static int
8279 link_change(NMPlatform *platform, NMLinkType type, int ifindex, gconstpointer extra_data)
8326 link_change_extra(NMPlatform *platform, NMLinkType type, int ifindex, gconstpointer extra_data)
82808327 {
82818328 nm_auto_nlmsg struct nl_msg *nlmsg = NULL;
82828329
83518398
83528399 nmp_object_stackinit_id_link(&obj_id, ifindex);
83538400 return do_delete_object(platform, &obj_id, nlmsg);
8401 }
8402
8403 static gboolean
8404 link_change(NMPlatform *platform,
8405 int ifindex,
8406 NMPortKind port_kind,
8407 const NMPlatformLinkPortData *port_data)
8408 {
8409 nm_auto_nlmsg struct nl_msg *nlmsg = NULL;
8410 struct nlattr *nl_info;
8411 struct nlattr *nl_port_data;
8412
8413 nlmsg = _nl_msg_new_link(RTM_NEWLINK, 0, ifindex, NULL);
8414 if (!nlmsg)
8415 return FALSE;
8416
8417 switch (port_kind) {
8418 case NM_PORT_KIND_BOND:
8419
8420 nm_assert(port_data);
8421
8422 if (!(nl_info = nla_nest_start(nlmsg, IFLA_LINKINFO)))
8423 goto nla_put_failure;
8424
8425 nm_assert(nm_streq0("bond", nm_link_type_to_rtnl_type_string(NM_LINK_TYPE_BOND)));
8426 NLA_PUT_STRING(nlmsg, IFLA_INFO_SLAVE_KIND, "bond");
8427
8428 if (!(nl_port_data = nla_nest_start(nlmsg, IFLA_INFO_SLAVE_DATA)))
8429 goto nla_put_failure;
8430
8431 NLA_PUT_U16(nlmsg, IFLA_BOND_SLAVE_QUEUE_ID, port_data->bond.queue_id);
8432
8433 if (port_data->bond.prio_has)
8434 NLA_PUT_S32(nlmsg, IFLA_BOND_SLAVE_PRIO, port_data->bond.prio);
8435
8436 nla_nest_end(nlmsg, nl_port_data);
8437 nla_nest_end(nlmsg, nl_info);
8438 break;
8439 case NM_PORT_KIND_NONE:
8440 break;
8441 }
8442
8443 return do_change_link(platform, CHANGE_LINK_TYPE_UNSPEC, ifindex, nlmsg, NULL) == 0;
8444 nla_put_failure:
8445 g_return_val_if_reached(FALSE);
83548446 }
83558447
83568448 static gboolean
1112011212 platform_class->sysctl_set_async = sysctl_set_async;
1112111213 platform_class->sysctl_get = sysctl_get;
1112211214
11123 platform_class->link_add = link_add;
11215 platform_class->link_add = link_add;
11216 platform_class->link_change_extra = link_change_extra;
11217 platform_class->link_delete = link_delete;
11218
1112411219 platform_class->link_change = link_change;
11125 platform_class->link_delete = link_delete;
1112611220
1112711221 platform_class->link_refresh = link_refresh;
1112811222
5959 G_STATIC_ASSERT(sizeof(((NMPlatformLink *) NULL)->l_address.data) == _NM_UTILS_HWADDR_LEN_MAX);
6060 G_STATIC_ASSERT(sizeof(((NMPlatformLink *) NULL)->l_perm_address.data) == _NM_UTILS_HWADDR_LEN_MAX);
6161 G_STATIC_ASSERT(sizeof(((NMPlatformLink *) NULL)->l_broadcast.data) == _NM_UTILS_HWADDR_LEN_MAX);
62
63 static const char *
64 _nmp_link_port_data_to_string(NMPortKind port_kind,
65 const NMPlatformLinkPortData *port_data,
66 char *sbuf,
67 gsize sbuf_len)
68 {
69 const char *sbuf0 = sbuf;
70 char s0[120];
71
72 nm_assert(port_data);
73
74 switch (port_kind) {
75 case NM_PORT_KIND_NONE:
76 nm_strbuf_append_c(&sbuf, &sbuf_len, '\0');
77 goto out;
78 case NM_PORT_KIND_BOND:
79 nm_strbuf_append(&sbuf,
80 &sbuf_len,
81 "port bond queue-id %u%s",
82 port_data->bond.queue_id,
83 port_data->bond.prio_has || port_data->bond.prio != 0
84 ? nm_sprintf_buf(s0,
85 " prio%s %u",
86 port_data->bond.prio_has ? "" : "?",
87 port_data->bond.prio)
88 : "");
89 goto out;
90 }
91
92 nm_strbuf_append(&sbuf, &sbuf_len, "invalid-port-type %d", (int) port_kind);
93
94 out:
95 return sbuf0;
96 }
6297
6398 static const char *
6499 _nmp_link_address_to_string(const NMPLinkAddress *addr,
14051440 }
14061441
14071442 int
1408 nm_platform_link_change(NMPlatform *self, NMLinkType type, int ifindex, gconstpointer extra_data)
1443 nm_platform_link_change_extra(NMPlatform *self,
1444 NMLinkType type,
1445 int ifindex,
1446 gconstpointer extra_data)
14091447 {
14101448 char buf[512];
14111449 const char *name = nm_platform_link_get_name(self, ifindex);
14461484 buf;
14471485 }));
14481486
1449 return klass->link_change(self, type, ifindex, extra_data);
1487 return klass->link_change_extra(self, type, ifindex, extra_data);
14501488 }
14511489
14521490 /**
21042142 return FALSE;
21052143
21062144 return klass->link_set_name(self, ifindex, name);
2145 }
2146
2147 gboolean
2148 nm_platform_link_change(NMPlatform *self, int ifindex, NMPlatformLinkBondPort *bond_port)
2149 {
2150 char sbuf_prio[100];
2151
2152 _CHECK_SELF(self, klass, FALSE);
2153
2154 g_return_val_if_fail(ifindex >= 0, FALSE);
2155
2156 if (_LOGD_ENABLED()) {
2157 nm_auto_free_gstring GString *str = g_string_new("");
2158
2159 if (bond_port) {
2160 nm_assert(bond_port->prio_has || bond_port->prio == 0);
2161 g_string_append_printf(str,
2162 "bond-port queue-id %d %s",
2163 bond_port->queue_id,
2164 bond_port->prio_has || bond_port->prio != 0
2165 ? nm_sprintf_buf(sbuf_prio,
2166 "prio%s %" G_GINT32_FORMAT,
2167 !bond_port->prio_has ? "?" : "",
2168 bond_port->prio)
2169 : "");
2170 }
2171
2172 if (str->len > 0 && str->str[str->len - 1] == ' ')
2173 g_string_truncate(str, str->len - 1);
2174
2175 _LOG3D("link: change: %s", str->str);
2176 }
2177
2178 return klass->link_change(self,
2179 ifindex,
2180 bond_port ? NM_PORT_KIND_BOND : NM_PORT_KIND_NONE,
2181 (const NMPlatformLinkPortData *) bond_port);
21072182 }
21082183
21092184 /**
58925967 char *s;
58935968 gsize l;
58945969 char str_addrmode[30];
5970 char str_port_data[200];
58955971 char str_address[_NM_UTILS_HWADDR_LEN_MAX * 3];
58965972 char str_perm_address[_NM_UTILS_HWADDR_LEN_MAX * 3];
58975973 char str_broadcast[_NM_UTILS_HWADDR_LEN_MAX * 3];
59346010 _nmp_link_address_to_string(&link->l_address, str_address);
59356011 _nmp_link_address_to_string(&link->l_perm_address, str_perm_address);
59366012 _nmp_link_address_to_string(&link->l_broadcast, str_broadcast);
6013
6014 _nmp_link_port_data_to_string(link->port_kind,
6015 &link->port_data,
6016 str_port_data,
6017 sizeof(str_port_data));
59376018
59386019 str_link_type = nm_link_type_to_string(link->type);
59396020
59566037 "%s%s" /* l_broadcast */
59576038 "%s%s" /* inet6_token */
59586039 "%s%s" /* driver */
6040 "%s%s" /* port_data */
59596041 " rx:%" G_GUINT64_FORMAT ",%" G_GUINT64_FORMAT " tx:%" G_GUINT64_FORMAT
59606042 ",%" G_GUINT64_FORMAT,
59616043 link->ifindex,
59886070 : "",
59896071 link->driver ? " driver " : "",
59906072 link->driver ?: "",
6073 NM_PRINT_FMT_QUOTED2(str_port_data[0] != '\0', " ", str_port_data, ""),
59916074 link->rx_packets,
59926075 link->rx_bytes,
59936076 link->tx_packets,
78207903 obj->arptype,
78217904 obj->inet6_addr_gen_mode_inv,
78227905 obj->inet6_token,
7906 obj->port_kind,
78237907 obj->rx_packets,
78247908 obj->rx_bytes,
78257909 obj->tx_packets,
78387922 nm_hash_update_mem(h,
78397923 obj->l_broadcast.data,
78407924 NM_MIN(obj->l_broadcast.len, sizeof(obj->l_broadcast.data)));
7925
7926 switch (obj->port_kind) {
7927 case NM_PORT_KIND_NONE:
7928 break;
7929 case NM_PORT_KIND_BOND:
7930 nm_platform_link_bond_port_hash_update(&obj->port_data.bond, h);
7931 break;
7932 }
7933 }
7934
7935 void
7936 nm_platform_link_bond_port_hash_update(const NMPlatformLinkBondPort *obj, NMHashState *h)
7937 {
7938 nm_hash_update_vals(h, obj->prio, obj->queue_id, NM_HASH_COMBINE_BOOLS(guint8, obj->prio_has));
78417939 }
78427940
78437941 int
78677965 if (a->l_broadcast.len)
78687966 NM_CMP_FIELD_MEMCMP_LEN(a, b, l_broadcast.data, a->l_broadcast.len);
78697967 NM_CMP_FIELD_MEMCMP(a, b, inet6_token);
7968 NM_CMP_FIELD(a, b, port_kind);
7969 switch (a->port_kind) {
7970 case NM_PORT_KIND_NONE:
7971 break;
7972 case NM_PORT_KIND_BOND:
7973 NM_CMP_RETURN(nm_platform_link_bond_port_cmp(&a->port_data.bond, &b->port_data.bond));
7974 break;
7975 }
78707976 NM_CMP_FIELD(a, b, rx_packets);
78717977 NM_CMP_FIELD(a, b, rx_bytes);
78727978 NM_CMP_FIELD(a, b, tx_packets);
79448050 obj->use_carrier));
79458051
79468052 nm_hash_update(h, obj->arp_ip_target, obj->arp_ip_targets_num * sizeof(obj->arp_ip_target[0]));
8053 }
8054
8055 int
8056 nm_platform_link_bond_port_cmp(const NMPlatformLinkBondPort *a, const NMPlatformLinkBondPort *b)
8057 {
8058 NM_CMP_SELF(a, b);
8059 NM_CMP_FIELD(a, b, queue_id);
8060 NM_CMP_FIELD(a, b, prio);
8061 NM_CMP_FIELD_BOOL(a, b, prio_has);
8062
8063 return 0;
79478064 }
79488065
79498066 int
153153 __NMPlatformObjWithIfindex_COMMON;
154154 } _nm_alignas(NMPlatformObject);
155155
156 typedef struct {
157 gint32 prio;
158 guint16 queue_id;
159 bool prio_has : 1;
160 } NMPlatformLinkBondPort;
161
162 typedef union {
163 NMPlatformLinkBondPort bond;
164 } NMPlatformLinkPortData;
165
156166 struct _NMPlatformLink {
157167 __NMPlatformObjWithIfindex_COMMON;
158168 char name[NMP_IFNAMSIZ];
202212 guint64 rx_bytes;
203213 guint64 tx_packets;
204214 guint64 tx_bytes;
215
216 /* an interface can only hold IFLA_INFO_SLAVE_DATA for one link type */
217 NMPlatformLinkPortData port_data;
218
219 /* IFLA_INFO_SLAVE_KIND */
220 NMPortKind port_kind;
205221
206222 /* @connected is mostly identical to (@n_ifi_flags & IFF_UP). Except for bridge/bond masters,
207223 * where we coerce the link as disconnect if it has no slaves. */
9891005 * were added at the same time. */
9901006 NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_IP_PROTO,
9911007
1008 NM_PLATFORM_KERNEL_SUPPORT_TYPE_IFLA_BOND_SLAVE_PRIO,
1009
9921010 _NM_PLATFORM_KERNEL_SUPPORT_NUM,
9931011 } NMPlatformKernelSupportType;
9941012
10851103 guint32 mtu,
10861104 gconstpointer extra_data,
10871105 const NMPlatformLink **out_link);
1088
1089 int (*link_change)(NMPlatform *self, NMLinkType type, int ifindex, gconstpointer extra_data);
1090
1106 int (*link_change_extra)(NMPlatform *self,
1107 NMLinkType type,
1108 int ifindex,
1109 gconstpointer extra_data);
1110 gboolean (*link_change)(NMPlatform *self,
1111 int ifindex,
1112 NMPortKind port_kind,
1113 const NMPlatformLinkPortData *port_data);
10911114 gboolean (*link_delete)(NMPlatform *self, int ifindex);
10921115 gboolean (*link_refresh)(NMPlatform *self, int ifindex);
10931116 gboolean (*link_set_netns)(NMPlatform *self, int ifindex, int netns_fd);
15891612 gconstpointer extra_data,
15901613 const NMPlatformLink **out_link);
15911614
1592 int
1593 nm_platform_link_change(NMPlatform *self, NMLinkType type, int ifindex, gconstpointer extra_data);
1615 int nm_platform_link_change_extra(NMPlatform *self,
1616 NMLinkType type,
1617 int ifindex,
1618 gconstpointer extra_data);
15941619
15951620 static inline int
15961621 nm_platform_link_veth_add(NMPlatform *self,
16301655 static inline int
16311656 nm_platform_link_bridge_change(NMPlatform *self, int ifindex, const NMPlatformLnkBridge *props)
16321657 {
1633 return nm_platform_link_change(self, NM_LINK_TYPE_BRIDGE, ifindex, props);
1658 return nm_platform_link_change_extra(self, NM_LINK_TYPE_BRIDGE, ifindex, props);
16341659 }
16351660
16361661 static inline int
16371662 nm_platform_link_bond_change(NMPlatform *self, int ifindex, const NMPlatformLnkBond *props)
16381663 {
1639 return nm_platform_link_change(self, NM_LINK_TYPE_BOND, ifindex, props);
1664 return nm_platform_link_change_extra(self, NM_LINK_TYPE_BOND, ifindex, props);
16401665 }
16411666
16421667 static inline int
19121937 {
19131938 return nm_platform_link_change_flags_full(self, ifindex, value, set ? value : 0u);
19141939 }
1940
1941 gboolean nm_platform_link_change(NMPlatform *self, int ifindex, NMPlatformLinkBondPort *bond_port);
19151942
19161943 gboolean nm_platform_link_get_udev_property(NMPlatform *self,
19171944 int ifindex,
23902417 int nm_platform_mptcp_addr_cmp(const NMPlatformMptcpAddr *a, const NMPlatformMptcpAddr *b);
23912418
23922419 void nm_platform_link_hash_update(const NMPlatformLink *obj, NMHashState *h);
2420 void nm_platform_link_bond_port_hash_update(const NMPlatformLinkBondPort *obj, NMHashState *h);
2421 int nm_platform_link_bond_port_cmp(const NMPlatformLinkBondPort *a,
2422 const NMPlatformLinkBondPort *b);
23932423 void nm_platform_ip4_route_hash_update(const NMPlatformIP4Route *obj,
23942424 NMPlatformIPRouteCmpType cmp_type,
23952425 NMHashState *h);
52335233 .property_alias = "queue-id",
52345234 .prompt = N_("Queue ID"),
52355235 .property_type = &_pt_gobject_int,
5236 ),
5237 PROPERTY_INFO_WITH_DESC (NM_SETTING_BOND_PORT_PRIO,
5238 .is_cli_option = TRUE,
5239 .property_alias = "prio",
5240 .prompt = N_("Port Priority"),
5241 .property_type= &_pt_gobject_int,
52365242 ),
52375243 NULL
52385244 };
152152 #define DESCRIBE_DOC_NM_SETTING_GSM_USERNAME N_("The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.")
153153 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MAC_ADDRESS N_("If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).")
154154 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
155 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka \"the P_Key at index 0\"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a \"full membership\" P_Key.")
155 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka \"the p-key at index 0\"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a \"full membership\" p-key. The values 0 and 0x8000 are not allowed. With the p-key set, the interface name is always \"$parent.$p_key\". Setting \"connection.interface-name\" to another name is not supported. Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set.")
156156 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_PARENT N_("The interface name of the parent device of this device. Normally NULL, but if the \"p_key\" property is set, then you must specify the base device by setting either this property or \"mac-address\".")
157157 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
158158 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("A list of IPv4 addresses and their prefix length. Multiple addresses can be separated by comma. For example \"192.168.1.5/24, 10.1.0.5/24\". The addresses are listed in decreasing priority, meaning the first address will be the primary address.")
435435 #define DESCRIBE_DOC_NM_SETTING_WPAN_PAGE N_("IEEE 802.15.4 channel page. A positive integer or -1, meaning \"do not set, use whatever the device is already set to\".")
436436 #define DESCRIBE_DOC_NM_SETTING_WPAN_PAN_ID N_("IEEE 802.15.4 Personal Area Network (PAN) identifier.")
437437 #define DESCRIBE_DOC_NM_SETTING_WPAN_SHORT_ADDRESS N_("Short IEEE 802.15.4 address to be used within a restricted environment.")
438 #define DESCRIBE_DOC_NM_SETTING_BOND_PORT_PRIO N_("The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes.")
438439 #define DESCRIBE_DOC_NM_SETTING_BOND_PORT_QUEUE_ID N_("The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.")
439440 #define DESCRIBE_DOC_NM_SETTING_HOSTNAME_FROM_DHCP N_("Whether the system hostname can be determined from DHCP on this connection. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).")
440441 #define DESCRIBE_DOC_NM_SETTING_HOSTNAME_FROM_DNS_LOOKUP N_("Whether the system hostname can be determined from reverse DNS lookup of addresses on this device. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).")
152152 #define DESCRIBE_DOC_NM_SETTING_GSM_USERNAME N_("The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here.")
153153 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MAC_ADDRESS N_("If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).")
154154 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_MTU N_("If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.")
155 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka \"the P_Key at index 0\"). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a \"full membership\" P_Key.")
155 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_P_KEY N_("The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka \"the p-key at index 0\"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a \"full membership\" p-key. The values 0 and 0x8000 are not allowed. With the p-key set, the interface name is always \"$parent.$p_key\". Setting \"connection.interface-name\" to another name is not supported. Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set.")
156156 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_PARENT N_("The interface name of the parent device of this device. Normally NULL, but if the \"p_key\" property is set, then you must specify the base device by setting either this property or \"mac-address\".")
157157 #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".")
158158 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("A list of IPv4 addresses and their prefix length. Multiple addresses can be separated by comma. For example \"192.168.1.5/24, 10.1.0.5/24\". The addresses are listed in decreasing priority, meaning the first address will be the primary address.")
435435 #define DESCRIBE_DOC_NM_SETTING_WPAN_PAGE N_("IEEE 802.15.4 channel page. A positive integer or -1, meaning \"do not set, use whatever the device is already set to\".")
436436 #define DESCRIBE_DOC_NM_SETTING_WPAN_PAN_ID N_("IEEE 802.15.4 Personal Area Network (PAN) identifier.")
437437 #define DESCRIBE_DOC_NM_SETTING_WPAN_SHORT_ADDRESS N_("Short IEEE 802.15.4 address to be used within a restricted environment.")
438 #define DESCRIBE_DOC_NM_SETTING_BOND_PORT_PRIO N_("The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes.")
438439 #define DESCRIBE_DOC_NM_SETTING_BOND_PORT_QUEUE_ID N_("The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device.")
439440 #define DESCRIBE_DOC_NM_SETTING_HOSTNAME_FROM_DHCP N_("Whether the system hostname can be determined from DHCP on this connection. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).")
440441 #define DESCRIBE_DOC_NM_SETTING_HOSTNAME_FROM_DNS_LOOKUP N_("Whether the system hostname can be determined from reverse DNS lookup of addresses on this device. When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be NM_TERNARY_TRUE (1).")
1313 #include "libnm-core-aux-intern/nm-libnm-core-utils.h"
1414
1515 /*****************************************************************************/
16
17 typedef struct {
18 GCancellable *cancellable;
19 gboolean enabled;
20 gboolean signal_received;
21 } SigTermData;
1622
1723 typedef struct {
1824 GMainLoop *main_loop;
442448 /*****************************************************************************/
443449
444450 static gboolean
445 _config_one(GCancellable *sigterm_cancellable,
451 _config_one(SigTermData *sigterm_data,
446452 NMClient *nmc,
447453 const NMCSProviderGetConfigResult *result,
448454 guint idx)
462468
463469 g_main_context_iteration(NULL, FALSE);
464470
465 if (g_cancellable_is_cancelled(sigterm_cancellable))
471 if (g_cancellable_is_cancelled(sigterm_data->cancellable))
466472 return FALSE;
467473
468474 device = nm_g_object_ref(_nmc_get_device_by_hwaddr(nmc, hwaddr));
496502 g_clear_error(&error);
497503
498504 applied_connection = nmcs_device_get_applied_connection(device,
499 sigterm_cancellable,
505 sigterm_data->cancellable,
500506 &applied_version_id,
501507 &error);
502508 if (!applied_connection) {
557563 maybe_no_preserved_external_ip =
558564 (nmc_client_has_version_info_v(nmc) < NM_ENCODE_VERSION(1, 41, 6));
559565
566 /* Once we start reconfiguring the system, we cannot abort in the middle. From now on,
567 * any SIGTERM gets ignored until we are done. */
568 sigterm_data->enabled = FALSE;
569
560570 if (!nmcs_device_reapply(device,
561 sigterm_cancellable,
571 NULL,
562572 applied_connection,
563573 applied_version_id,
564574 maybe_no_preserved_external_ip,
589599 }
590600
591601 static gboolean
592 _config_all(GCancellable *sigterm_cancellable,
593 NMClient *nmc,
594 const NMCSProviderGetConfigResult *result)
602 _config_all(SigTermData *sigterm_data, NMClient *nmc, const NMCSProviderGetConfigResult *result)
595603 {
596604 gboolean any_changes = FALSE;
597605 guint i;
598606
599607 for (i = 0; i < result->n_iface_datas; i++) {
600 if (_config_one(sigterm_cancellable, nmc, result, i))
608 if (_config_one(sigterm_data, nmc, result, i))
601609 any_changes = TRUE;
602610 }
603611
609617 static gboolean
610618 sigterm_handler(gpointer user_data)
611619 {
612 GCancellable *sigterm_cancellable = user_data;
613
614 if (!g_cancellable_is_cancelled(sigterm_cancellable)) {
615 _LOGD("SIGTERM received");
616 g_cancellable_cancel(user_data);
617 } else
618 _LOGD("SIGTERM received (again)");
620 SigTermData *sigterm_data = user_data;
621
622 _LOGD("SIGTERM received (%s) (%s)",
623 sigterm_data->signal_received ? "first time" : "again",
624 sigterm_data->enabled ? "cancel operation" : "ignore");
625
626 sigterm_data->signal_received = TRUE;
627
628 if (sigterm_data->enabled)
629 g_cancellable_cancel(sigterm_data->cancellable);
619630 return G_SOURCE_CONTINUE;
620631 }
621632
630641 gs_unref_object NMClient *nmc = NULL;
631642 nm_auto_free_nmcs_provider_get_config_result NMCSProviderGetConfigResult *result = NULL;
632643 gs_free_error GError *error = NULL;
644 SigTermData sigterm_data;
633645
634646 _nm_logging_enabled_init(g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_LOG")));
635647
642654
643655 sigterm_cancellable = g_cancellable_new();
644656
645 sigterm_source = nm_g_unix_signal_add_source(SIGTERM, sigterm_handler, sigterm_cancellable);
657 sigterm_data = (SigTermData){
658 .cancellable = sigterm_cancellable,
659 .enabled = TRUE,
660 .signal_received = FALSE,
661 };
662 sigterm_source = nm_g_unix_signal_add_source(SIGTERM, sigterm_handler, &sigterm_data);
646663
647664 provider = _provider_detect(sigterm_cancellable);
648665 if (!provider)
673690 if (!result)
674691 goto done;
675692
676 if (_config_all(sigterm_cancellable, nmc, result))
693 if (_config_all(&sigterm_data, nmc, result))
677694 _LOGI("some changes were applied for provider %s", nmcs_provider_get_name(provider));
678695 else
679696 _LOGD("no changes were applied for provider %s", nmcs_provider_get_name(provider));
832832 NMDeviceReapplyFlags reapply_flags = NM_DEVICE_REAPPLY_FLAGS_PRESERVE_EXTERNAL_IP;
833833
834834 again:
835 g_clear_error(&data.error);
836
835837 nm_device_reapply_async(device,
836838 connection,
837839 version_id,
3030 * This is mainly for testing, it's not usually supposed to be configured.
3131 * Consider this private API! */
3232 base = g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_ALIYUN_HOST"));
33 base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_ALIYUN_HOST);
3334
3435 if (!g_atomic_pointer_compare_and_exchange(&base_cached, NULL, base))
3536 goto again;
3637 }
37 base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_ALIYUN_BASE);
38
3839 return base;
3940 }
4041
270270 <property name="queue-id"
271271 alias="queue-id"
272272 description="The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device." />
273 <property name="prio"
274 alias="prio"
275 description="The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes." />
273276 </setting>
274277 <setting name="bridge" >
275278 <property name="mac-address"
610613 description="The IP-over-InfiniBand transport mode. Either &quot;datagram&quot; or &quot;connected&quot;." />
611614 <property name="p-key"
612615 alias="p-key"
613 description="The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka &quot;the P_Key at index 0&quot;). Otherwise, it is a 16-bit unsigned integer, whose high bit is set if it is a &quot;full membership&quot; P_Key." />
616 description="The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka &quot;the p-key at index 0&quot;). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a &quot;full membership&quot; p-key. The values 0 and 0x8000 are not allowed. With the p-key set, the interface name is always &quot;$parent.$p_key&quot;. Setting &quot;connection.interface-name&quot; to another name is not supported. Note that kernel will internally always set the full membership bit, although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set." />
614617 <property name="parent"
615618 alias="parent"
616619 description="The interface name of the parent device of this device. Normally NULL, but if the &quot;p_key&quot; property is set, then you must specify the base device by setting either this property or &quot;mac-address&quot;." />