New upstream version 1.42.8
Michael Biebl
10 months ago
3284 | 3284 | -I$(builddir)/src \ |
3285 | 3285 | -I$(builddir)/src/libnm-core-public \ |
3286 | 3286 | -I$(srcdir)/src/libnm-core-public \ |
3287 | $(GLIB_CFLAGS) | |
3287 | $(GLIB_CFLAGS) \ | |
3288 | $(PPPD_CFLAGS) \ | |
3289 | $(NULL) | |
3288 | 3290 | |
3289 | 3291 | src_core_ppp_nm_pppd_plugin_la_SOURCES = \ |
3292 | src/core/ppp/nm-pppd-compat.c \ | |
3293 | src/core/ppp/nm-pppd-compat.h \ | |
3290 | 3294 | src/core/ppp/nm-pppd-plugin.c \ |
3291 | 3295 | src/core/ppp/nm-pppd-plugin.h \ |
3292 | 3296 | src/core/ppp/nm-ppp-status.h |
3325 | 3329 | $(NULL) |
3326 | 3330 | |
3327 | 3331 | $(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 | |
3328 | 3338 | |
3329 | 3339 | endif |
3330 | 3340 | |
3560 | 3570 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ |
3561 | 3571 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ |
3562 | 3572 | 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 \ | |
3564 | 3576 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected \ |
3565 | 3577 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ipoib \ |
3566 | 3578 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-link_local \ |
194 | 194 | ############################################################################### |
195 | 195 | @WITH_PPP_TRUE@am__append_21 = src/core/ppp/libnm-ppp-plugin.la |
196 | 196 | @WITH_PPP_TRUE@am__append_22 = src/core/ppp/nm-pppd-plugin.la |
197 | @WITH_PPP_TRUE@am__append_23 = check-local-ppp-plugin | |
197 | 198 | |
198 | 199 | ############################################################################### |
199 | 200 | # src/core/settings/plugins/ifcfg-rh |
200 | 201 | ############################################################################### |
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 = \ | |
203 | 204 | @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la \ |
204 | 205 | @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la |
205 | 206 | |
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 | |
208 | 209 | |
209 | 210 | ############################################################################### |
210 | 211 | # src/core/settings/plugins/ifcfg-rh/tests |
211 | 212 | ############################################################################### |
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 = \ | |
214 | 215 | @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/nm-ifup \ |
215 | 216 | @CONFIG_PLUGIN_IFCFG_RH_TRUE@ src/core/settings/plugins/ifcfg-rh/nm-ifdown |
216 | 217 | |
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 | |
218 | 219 | |
219 | 220 | ############################################################################### |
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 | |
221 | 222 | |
222 | 223 | ############################################################################### |
223 | 224 | # src/core/settings/plugins/ifupdown |
224 | 225 | ############################################################################### |
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 | |
228 | 229 | |
229 | 230 | ############################################################################### |
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 | |
231 | 232 | |
232 | 233 | ############################################################################### |
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 \ | |
234 | 235 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/libnm-device-plugin-wwan.la \ |
235 | 236 | @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 = \ | |
237 | 238 | @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@ src/core/devices/wwan/nm-modem-ofono.c \ |
238 | 239 | @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@ src/core/devices/wwan/nm-modem-ofono.h |
239 | 240 | |
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 \ | |
241 | 242 | @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 | |
243 | 244 | |
244 | 245 | ############################################################################### |
245 | 246 | # src/core/devices/bluetooth |
246 | 247 | ############################################################################### |
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 = \ | |
249 | 250 | @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez5-dun.c \ |
250 | 251 | @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez5-dun.h \ |
251 | 252 | @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@ $(NULL) |
252 | 253 | |
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) | |
255 | 256 | |
256 | 257 | ############################################################################### |
257 | @WITH_MODEM_MANAGER_1_TRUE@am__append_43 = \ | |
258 | @WITH_MODEM_MANAGER_1_TRUE@am__append_44 = \ | |
258 | 259 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/tests/nm-bt-test |
259 | 260 | |
260 | 261 | |
261 | 262 | ############################################################################### |
262 | 263 | # src/core/devices/wifi |
263 | 264 | ############################################################################### |
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 = \ | |
266 | 267 | @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-device-iwd.c \ |
267 | 268 | @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-device-iwd.h \ |
268 | 269 | @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-device-iwd-p2p.c \ |
271 | 272 | @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ src/core/devices/wifi/nm-iwd-manager.h \ |
272 | 273 | @WITH_IWD_TRUE@@WITH_WIFI_TRUE@ $(NULL) |
273 | 274 | |
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 | |
277 | 278 | |
278 | 279 | ############################################################################### |
279 | 280 | # src/core/devices/team |
280 | 281 | ############################################################################### |
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 | |
286 | 287 | |
287 | 288 | ############################################################################### |
288 | 289 | # src/nmcli |
289 | 290 | ############################################################################### |
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 | |
293 | 294 | |
294 | 295 | ############################################################################### |
295 | 296 | # src/libnmt-newt |
296 | 297 | ############################################################################### |
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 | |
298 | 299 | |
299 | 300 | ############################################################################### |
300 | 301 | # src/nmtui |
301 | 302 | ############################################################################### |
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 | |
305 | 306 | |
306 | 307 | ############################################################################### |
307 | 308 | # src/nm-cloud-setup |
308 | 309 | ############################################################################### |
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 = \ | |
312 | 313 | @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ src/nm-cloud-setup/nm-cloud-setup.service \ |
313 | 314 | @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ src/nm-cloud-setup/nm-cloud-setup.timer \ |
314 | 315 | @BUILD_NM_CLOUD_SETUP_TRUE@@HAVE_SYSTEMD_TRUE@ $(NULL) |
315 | 316 | |
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 = \ | |
319 | 320 | @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/90-nm-cloud-setup.sh \ |
320 | 321 | @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/meson.build \ |
321 | 322 | @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/nm-cloud-setup.service.in \ |
323 | 324 | @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/tests/meson.build \ |
324 | 325 | @BUILD_NM_CLOUD_SETUP_TRUE@ $(NULL) |
325 | 326 | |
326 | @BUILD_NM_CLOUD_SETUP_TRUE@am__append_67 = \ | |
327 | @BUILD_NM_CLOUD_SETUP_TRUE@am__append_68 = \ | |
327 | 328 | @BUILD_NM_CLOUD_SETUP_TRUE@ src/nm-cloud-setup/nm-cloud-setup.service |
328 | 329 | |
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 | |
330 | 331 | |
331 | 332 | ############################################################################### |
332 | 333 | # data |
333 | 334 | ############################################################################### |
334 | @HAVE_SYSTEMD_TRUE@am__append_69 = \ | |
335 | @HAVE_SYSTEMD_TRUE@am__append_70 = \ | |
335 | 336 | @HAVE_SYSTEMD_TRUE@ data/NetworkManager.service \ |
336 | 337 | @HAVE_SYSTEMD_TRUE@ data/NetworkManager-wait-online.service \ |
337 | 338 | @HAVE_SYSTEMD_TRUE@ data/NetworkManager-dispatcher.service \ |
338 | 339 | @HAVE_SYSTEMD_TRUE@ data/nm-priv-helper.service \ |
339 | 340 | @HAVE_SYSTEMD_TRUE@ $(NULL) |
340 | 341 | |
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 | |
344 | 344 | @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 | |
347 | 347 | @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 | |
350 | 350 | @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) | |
355 | 356 | |
356 | 357 | ############################################################################### |
357 | 358 | # vapi |
358 | 359 | ############################################################################### |
359 | @ENABLE_VAPIGEN_TRUE@am__append_84 = \ | |
360 | @ENABLE_VAPIGEN_TRUE@am__append_85 = \ | |
360 | 361 | @ENABLE_VAPIGEN_TRUE@ vapi/libnm.vapi |
361 | 362 | |
362 | @ENABLE_VAPIGEN_TRUE@am__append_85 = \ | |
363 | @ENABLE_VAPIGEN_TRUE@am__append_86 = \ | |
363 | 364 | @ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS) \ |
364 | 365 | @ENABLE_VAPIGEN_TRUE@ $(VAPIGEN_VAPIS:.vapi=.deps) |
365 | 366 | |
366 | @ENABLE_VAPIGEN_TRUE@am__append_86 = $(VAPIGEN_VAPIS) | |
367 | @ENABLE_VAPIGEN_TRUE@am__append_87 = $(VAPIGEN_VAPIS) | |
367 | 368 | |
368 | 369 | ############################################################################### |
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 = \ | |
374 | 375 | @WITH_QT_TRUE@ examples/C/qt/add-connection-wired \ |
375 | 376 | @WITH_QT_TRUE@ examples/C/qt/list-connections \ |
376 | 377 | @WITH_QT_TRUE@ examples/C/qt/change-ipv4-addresses \ |
377 | 378 | @WITH_QT_TRUE@ examples/C/qt/monitor-nm-running |
378 | 379 | |
379 | @WITH_QT_TRUE@am__append_92 = \ | |
380 | @WITH_QT_TRUE@am__append_93 = \ | |
380 | 381 | @WITH_QT_TRUE@ examples/C/qt/monitor-nm-running.moc |
381 | 382 | |
382 | 383 | subdir = . |
1061 | 1062 | @WITH_PPP_TRUE@src_core_ppp_nm_pppd_plugin_la_DEPENDENCIES = \ |
1062 | 1063 | @WITH_PPP_TRUE@ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) |
1063 | 1064 | 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 \ | |
1064 | 1066 | src/core/ppp/nm-pppd-plugin.c src/core/ppp/nm-pppd-plugin.h \ |
1065 | 1067 | 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 | |
1067 | 1070 | src_core_ppp_nm_pppd_plugin_la_OBJECTS = \ |
1068 | 1071 | $(am_src_core_ppp_nm_pppd_plugin_la_OBJECTS) |
1069 | 1072 | src_core_ppp_nm_pppd_plugin_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ |
2932 | 2935 | src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo \ |
2933 | 2936 | src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo \ |
2934 | 2937 | 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 \ | |
2935 | 2939 | src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo \ |
2936 | 2940 | src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo \ |
2937 | 2941 | src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo \ |
4097 | 4101 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
4098 | 4102 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
4099 | 4103 | POSUB = @POSUB@ |
4104 | PPPD_CFLAGS = @PPPD_CFLAGS@ | |
4100 | 4105 | PPPD_PATH = @PPPD_PATH@ |
4101 | 4106 | PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ |
4102 | 4107 | PTHREAD_CC = @PTHREAD_CC@ |
4291 | 4296 | src/core/libNetworkManager.la \ |
4292 | 4297 | src/libnm-systemd-core/libnm-systemd-core.la $(NULL) \ |
4293 | 4298 | 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) | |
4299 | 4304 | noinst_DATA = $(am__append_12) |
4300 | dist_libexec_SCRIPTS = $(am__append_28) | |
4305 | dist_libexec_SCRIPTS = $(am__append_29) | |
4301 | 4306 | |
4302 | 4307 | ############################################################################### |
4303 | 4308 | lib_LTLIBRARIES = src/libnm-client-impl/libnm.la |
4306 | 4311 | ############################################################################### |
4307 | 4312 | # src/core/devices/adsl |
4308 | 4313 | ############################################################################### |
4309 | core_plugins = $(am__append_21) $(am__append_23) $(am__append_31) \ | |
4314 | core_plugins = $(am__append_21) $(am__append_24) $(am__append_32) \ | |
4310 | 4315 | 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) | |
4313 | 4318 | service_DATA = |
4314 | man_MANS = $(am__append_82) | |
4319 | man_MANS = $(am__append_83) | |
4315 | 4320 | examples_DATA = data/server.conf |
4316 | 4321 | CLEANFILES = $(introspection_sources) $(DBUS_INTERFACE_DOCS) \ |
4317 | src/core/NetworkManager.ver $(am__append_25) \ | |
4322 | src/core/NetworkManager.ver $(am__append_26) \ | |
4318 | 4323 | $(dispatcher_nmdbus_dispatcher_sources) \ |
4319 | 4324 | src/nm-dispatcher/org.freedesktop.nm_dispatcher.service \ |
4320 | 4325 | 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 \ | |
4322 | 4327 | data/NetworkManager-dispatcher.service \ |
4323 | 4328 | data/NetworkManager-wait-online.service \ |
4324 | 4329 | 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) \ | |
4327 | 4332 | $(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) | |
4329 | 4334 | |
4330 | 4335 | ############################################################################### |
4331 | 4336 | DISTCLEANFILES = config-extra.h po/.Makefile.patched \ |
4735 | 4740 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-fabric \ |
4736 | 4741 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-fcoe-vn2vn \ |
4737 | 4742 | 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 \ | |
4739 | 4746 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ip6-disabled.cexpected \ |
4740 | 4747 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-ipoib \ |
4741 | 4748 | src/core/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-test-link_local \ |
4987 | 4994 | src/libnmc-setting/meson.build \ |
4988 | 4995 | src/libnmc-setting/tests/meson.build \ |
4989 | 4996 | 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 \ | |
4991 | 4998 | src/tests/client/test-client.py \ |
4992 | 4999 | src/tests/client/test-client.check-on-disk/test_001.expected \ |
4993 | 5000 | src/tests/client/test-client.check-on-disk/test_002.expected \ |
5001 | 5008 | data/NetworkManager-wait-online.service.in \ |
5002 | 5009 | data/NetworkManager.service.in data/nm-priv-helper.service.in \ |
5003 | 5010 | 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) \ | |
5005 | 5012 | man/common.ent.in $(man_nm_settings_xml) $(addsuffix \ |
5006 | 5013 | .xsl,$(basename $(man_nm_settings_xml))) $(man_pages) \ |
5007 | 5014 | $(addsuffix .xml,$(basename $(man_pages))) \ |
5094 | 5101 | EXTRA_LTLIBRARIES = |
5095 | 5102 | dist_hook = dist-hook-settings-ifcfg-rh-alias-files |
5096 | 5103 | 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) \ | |
5099 | 5106 | $(man_pages_autogen) |
5100 | 5107 | 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) \ | |
5106 | 5110 | $(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) | |
5107 | 5114 | BUILT_SOURCES = src/libnm-core-public/nm-vpn-dbus-types.xml \ |
5108 | 5115 | src/libnm-core-public/nm-dbus-types.xml $(gir_DATA) \ |
5109 | 5116 | $(typelib_DATA) |
5117 | 5124 | man/NetworkManager-wait-online.service.8 man/NetworkManager.8 \ |
5118 | 5125 | man/NetworkManager.conf.5 man/nm-initrd-generator.8 \ |
5119 | 5126 | 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) | |
5121 | 5128 | 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) | |
5123 | 5130 | |
5124 | 5131 | ############################################################################### |
5125 | 5132 | |
5167 | 5174 | src/core/dhcp/tests/test-dhcp-dhclient \ |
5168 | 5175 | src/core/dhcp/tests/test-dhcp-utils \ |
5169 | 5176 | 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 \ | |
5172 | 5179 | src/core/platform/tests/test-address-fake \ |
5173 | 5180 | src/core/platform/tests/test-address-linux \ |
5174 | 5181 | src/core/platform/tests/test-cleanup-fake \ |
5188 | 5195 | src/core/tests/test-l3cfg src/core/tests/test-systemd \ |
5189 | 5196 | src/core/tests/test-utils src/core/tests/test-wired-defname \ |
5190 | 5197 | $(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) \ | |
5193 | 5200 | src/core/platform/tests/monitor \ |
5194 | 5201 | src/core/ndisc/tests/test-ndisc-linux \ |
5195 | 5202 | examples/C/glib/add-connection-gdbus \ |
5200 | 5207 | examples/C/glib/list-connections-libnm \ |
5201 | 5208 | examples/C/glib/monitor-nm-running-gdbus \ |
5202 | 5209 | 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) | |
5204 | 5211 | |
5205 | 5212 | ############################################################################### |
5206 | 5213 | |
5214 | 5221 | src/libnmc-base/libnmc-base.la \ |
5215 | 5222 | src/libnmc-setting/libnmc-setting.la |
5216 | 5223 | 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 \ | |
5221 | 5228 | 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) \ | |
5224 | 5231 | src/nm-dispatcher/nm-dispatcher.conf \ |
5225 | 5232 | src/nm-priv-helper/nm-priv-helper.conf \ |
5226 | 5233 | src/core/org.freedesktop.NetworkManager.conf |
5227 | 5234 | dbusactivation_DATA = \ |
5228 | 5235 | src/nm-dispatcher/org.freedesktop.nm_dispatcher.service \ |
5229 | 5236 | 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) | |
5231 | 5238 | INTROSPECTION_GIRS = $(am__append_11) |
5232 | 5239 | INTROSPECTION_SCANNER_ARGS = |
5233 | 5240 | INTROSPECTION_COMPILER_ARGS = |
5244 | 5251 | pppd_plugindir = $(PPPD_PLUGIN_DIR) |
5245 | 5252 | pppd_plugin_LTLIBRARIES = $(am__append_22) |
5246 | 5253 | vapidir = $(datadir)/vala/vapi |
5247 | vapi_DATA = $(am__append_85) | |
5254 | vapi_DATA = $(am__append_86) | |
5248 | 5255 | examplesdir = $(docdir)/examples |
5249 | 5256 | rundir = $(runstatedir)/NetworkManager |
5250 | 5257 | statedir = $(localstatedir)/lib/NetworkManager |
7489 | 7496 | @WITH_PPP_TRUE@ -I$(builddir)/src \ |
7490 | 7497 | @WITH_PPP_TRUE@ -I$(builddir)/src/libnm-core-public \ |
7491 | 7498 | @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) | |
7493 | 7502 | |
7494 | 7503 | @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 \ | |
7495 | 7506 | @WITH_PPP_TRUE@ src/core/ppp/nm-pppd-plugin.c \ |
7496 | 7507 | @WITH_PPP_TRUE@ src/core/ppp/nm-pppd-plugin.h \ |
7497 | 7508 | @WITH_PPP_TRUE@ src/core/ppp/nm-ppp-status.h |
7677 | 7688 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/nm-modem.h \ |
7678 | 7689 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/wwan/nm-service-providers.c \ |
7679 | 7690 | @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) | |
7681 | 7692 | @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_wwan_libnm_wwan_la_CPPFLAGS = $(src_core_devices_wwan_cppflags) |
7682 | 7693 | @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_wwan_libnm_wwan_la_LDFLAGS = \ |
7683 | 7694 | @WITH_MODEM_MANAGER_1_TRUE@ -avoid-version \ |
7728 | 7739 | @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_bluetooth_utils_la_SOURCES = src/core/devices/bluetooth/nm-bluez-common.h \ |
7729 | 7740 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bt-error.c \ |
7730 | 7741 | @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) | |
7732 | 7743 | @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_bluetooth_utils_la_CPPFLAGS = \ |
7733 | 7744 | @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) | |
7735 | 7746 | @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_bluetooth_utils_la_LIBADD = \ |
7736 | 7747 | @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) | |
7738 | 7749 | @WITH_MODEM_MANAGER_1_TRUE@src_core_devices_bluetooth_libnm_device_plugin_bluetooth_la_SOURCES = \ |
7739 | 7750 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez-manager.c \ |
7740 | 7751 | @WITH_MODEM_MANAGER_1_TRUE@ src/core/devices/bluetooth/nm-bluez-manager.h \ |
7782 | 7793 | @WITH_WIFI_TRUE@ src/core/devices/wifi/nm-wifi-p2p-peer.h \ |
7783 | 7794 | @WITH_WIFI_TRUE@ src/core/devices/wifi/nm-wifi-utils.c \ |
7784 | 7795 | @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) | |
7786 | 7797 | @WITH_WIFI_TRUE@src_core_devices_wifi_libnm_wifi_base_la_CPPFLAGS = $(src_core_cppflags_device_plugin) |
7787 | 7798 | @WITH_WIFI_TRUE@src_core_devices_wifi_libnm_wifi_base_la_LIBADD = \ |
7788 | 7799 | @WITH_WIFI_TRUE@ $(GLIB_LIBS) |
9894 | 9905 | |
9895 | 9906 | 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) |
9896 | 9907 | $(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) | |
9897 | 9911 | src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo: \ |
9898 | 9912 | src/core/ppp/$(am__dirstamp) \ |
9899 | 9913 | src/core/ppp/$(DEPDIR)/$(am__dirstamp) |
12275 | 12289 | @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo@am__quote@ # am--include-marker |
12276 | 12290 | @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo@am__quote@ # am--include-marker |
12277 | 12291 | @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 | |
12278 | 12293 | @AMDEP_TRUE@@am__include@ @am__quote@src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo@am__quote@ # am--include-marker |
12279 | 12294 | @AMDEP_TRUE@@am__include@ @am__quote@src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo@am__quote@ # am--include-marker |
12280 | 12295 | @AMDEP_TRUE@@am__include@ @am__quote@src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo@am__quote@ # am--include-marker |
14404 | 14419 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ |
14405 | 14420 | @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 |
14406 | 14421 | |
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 | ||
14407 | 14429 | src/core/ppp/nm_pppd_plugin_la-nm-pppd-plugin.lo: src/core/ppp/nm-pppd-plugin.c |
14408 | 14430 | @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 |
14409 | 14431 | @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 |
20129 | 20151 | -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo |
20130 | 20152 | -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo |
20131 | 20153 | -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 | |
20132 | 20155 | -rm -f src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo |
20133 | 20156 | -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo |
20134 | 20157 | -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo |
20807 | 20830 | -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-manager-call.Plo |
20808 | 20831 | -rm -f src/core/ppp/$(DEPDIR)/libNetworkManager_la-nm-ppp-mgr.Plo |
20809 | 20832 | -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 | |
20810 | 20834 | -rm -f src/core/ppp/$(DEPDIR)/nm_pppd_plugin_la-nm-pppd-plugin.Plo |
20811 | 20835 | -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-agent-manager.Plo |
20812 | 20836 | -rm -f src/core/settings/$(DEPDIR)/libNetworkManager_la-nm-secret-agent.Plo |
21606 | 21630 | |
21607 | 21631 | @WITH_PPP_TRUE@$(src_core_ppp_libnm_ppp_plugin_la_OBJECTS): $(src_libnm_core_public_mkenums_h) |
21608 | 21632 | |
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 | ||
21609 | 21637 | $(src_core_settings_plugins_keyfile_tests_test_keyfile_settings_OBJECTS): $(src_libnm_core_public_mkenums_h) |
21610 | 21638 | |
21611 | 21639 | @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 | ||
0 | 17 | =============================================== |
1 | 18 | NetworkManager-1.42.6 |
2 | 19 | Overview of changes since NetworkManager-1.42.4 |
179 | 196 | paragraphs. |
180 | 197 | * Support enabling ipv4ll alongside DHCPv4 and static addressing. |
181 | 198 | * 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. | |
182 | 201 | * Honor "nm.debug" kernel command line to enable debug logging of |
183 | 202 | NetworkManager. |
184 | 203 | * NetworkManager reads the kernel command line "/proc/cmdline" for several |
214 | 214 | |
215 | 215 | /* Define if more debug logging is enabled */ |
216 | 216 | #undef NM_MORE_LOGGING |
217 | ||
218 | /* The detected ppp API version */ | |
219 | #undef NM_PPP_VERSION_2_5_OR_NEWER | |
217 | 220 | |
218 | 221 | /* Name of package */ |
219 | 222 | #undef PACKAGE |
238 | 238 | /* Define to path of pppd binary */ |
239 | 239 | #mesondefine PPPD_PATH |
240 | 240 | |
241 | /* The detected ppp API version */ | |
242 | #mesondefine NM_PPP_VERSION_2_5_OR_NEWER | |
243 | ||
241 | 244 | /* Define if you have iwd support */ |
242 | 245 | #mesondefine WITH_IWD |
243 | 246 |
0 | 0 | #! /bin/sh |
1 | 1 | # 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. | |
3 | 3 | # |
4 | 4 | # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>. |
5 | 5 | # |
621 | 621 | # Identity of this package. |
622 | 622 | PACKAGE_NAME='NetworkManager' |
623 | 623 | 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' | |
626 | 626 | PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager' |
627 | 627 | PACKAGE_URL='' |
628 | 628 | |
771 | 771 | PPPD_PLUGIN_DIR |
772 | 772 | WITH_PPP_FALSE |
773 | 773 | WITH_PPP_TRUE |
774 | PPPD_CFLAGS | |
774 | 775 | DBUS_SYS_DIR |
775 | 776 | GLIB_MKENUMS |
776 | 777 | GLIB_MAKEFILE |
1743 | 1744 | # Omit some internal or obsolete options to make the list less imposing. |
1744 | 1745 | # This message is too long to be a string in the A/UX 3.1 sh. |
1745 | 1746 | 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. | |
1747 | 1748 | |
1748 | 1749 | Usage: $0 [OPTION]... [VAR=VALUE]... |
1749 | 1750 | |
1815 | 1816 | |
1816 | 1817 | if test -n "$ac_init_help"; then |
1817 | 1818 | 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:";; | |
1819 | 1820 | esac |
1820 | 1821 | cat <<\_ACEOF |
1821 | 1822 | |
2170 | 2171 | test -n "$ac_init_help" && exit $ac_status |
2171 | 2172 | if $ac_init_version; then |
2172 | 2173 | cat <<\_ACEOF |
2173 | NetworkManager configure 1.42.6 | |
2174 | NetworkManager configure 1.42.8 | |
2174 | 2175 | generated by GNU Autoconf 2.71 |
2175 | 2176 | |
2176 | 2177 | Copyright (C) 2021 Free Software Foundation, Inc. |
2891 | 2892 | This file contains any messages produced by compilers while |
2892 | 2893 | running configure, to aid debugging if configure makes a mistake. |
2893 | 2894 | |
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 | |
2895 | 2896 | generated by GNU Autoconf 2.71. Invocation command line was |
2896 | 2897 | |
2897 | 2898 | $ $0$ac_configure_args_raw |
4387 | 4388 | |
4388 | 4389 | # Define the identity of the package. |
4389 | 4390 | PACKAGE='NetworkManager' |
4390 | VERSION='1.42.6' | |
4391 | VERSION='1.42.8' | |
4391 | 4392 | |
4392 | 4393 | |
4393 | 4394 | printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h |
19327 | 19328 | |
19328 | 19329 | NM_MAJOR_VERSION=1 |
19329 | 19330 | 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 | |
19340 | 19341 | |
19341 | 19342 | if test """" != "no-config-h" ; then |
19342 | 19343 | |
26496 | 26497 | |
26497 | 26498 | |
26498 | 26499 | # 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 | ||
26499 | 26515 | # Check whether --enable-ppp was given. |
26500 | 26516 | if test ${enable_ppp+y} |
26501 | 26517 | then : |
26505 | 26521 | fi |
26506 | 26522 | |
26507 | 26523 | 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 | |
26509 | 26526 | do : |
26510 | 26527 | ac_fn_c_check_header_compile "$LINENO" "pppd/pppd.h" "ac_cv_header_pppd_pppd_h" "$ac_includes_default" |
26511 | 26528 | if test "x$ac_cv_header_pppd_pppd_h" = xyes |
26517 | 26534 | fi |
26518 | 26535 | |
26519 | 26536 | done |
26537 | fi | |
26538 | PPPD_CFLAGS="$PPPD_CFLAGS" | |
26520 | 26539 | |
26521 | 26540 | |
26522 | 26541 | printf "%s\n" "#define WITH_PPP 1" >>confdefs.h |
26542 | 26561 | withval=$with_pppd_plugin_dir; |
26543 | 26562 | fi |
26544 | 26563 | |
26545 | ||
26546 | 26564 | if test -n "$with_pppd_plugin_dir" ; then |
26547 | 26565 | PPPD_PLUGIN_DIR="$with_pppd_plugin_dir" |
26548 | 26566 | 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 | |
26551 | 26572 | |
26552 | 26573 | |
26553 | 26574 | |
32794 | 32815 | # report actual input values of CONFIG_FILES etc. instead of their |
32795 | 32816 | # values after options handling. |
32796 | 32817 | 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 | |
32798 | 32819 | generated by GNU Autoconf 2.71. Invocation command line was |
32799 | 32820 | |
32800 | 32821 | CONFIG_FILES = $CONFIG_FILES |
32862 | 32883 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
32863 | 32884 | ac_cs_config='$ac_cs_config_escaped' |
32864 | 32885 | ac_cs_version="\\ |
32865 | NetworkManager config.status 1.42.6 | |
32886 | NetworkManager config.status 1.42.8 | |
32866 | 32887 | configured by $0, generated by GNU Autoconf 2.71, |
32867 | 32888 | with options \\"\$ac_cs_config\\" |
32868 | 32889 |
7 | 7 | dnl - update number in meson.build |
8 | 8 | m4_define([nm_major_version], [1]) |
9 | 9 | m4_define([nm_minor_version], [42]) |
10 | m4_define([nm_micro_version], [6]) | |
10 | m4_define([nm_micro_version], [8]) | |
11 | 11 | m4_define([nm_version], |
12 | 12 | [nm_major_version.nm_minor_version.nm_micro_version]) |
13 | 13 | |
753 | 753 | AC_SUBST(DBUS_SYS_DIR) |
754 | 754 | |
755 | 755 | # 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 | ||
756 | 764 | AC_ARG_ENABLE(ppp, |
757 | 765 | AS_HELP_STRING([--enable-ppp], [enable PPP/PPPoE support]), |
758 | 766 | [enable_ppp=${enableval}], [enable_ppp=yes]) |
759 | 767 | 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"]) | |
763 | 773 | AC_DEFINE(WITH_PPP, 1, [Define if you have PPP support]) |
764 | 774 | else |
765 | 775 | AC_DEFINE(WITH_PPP, 0, [Define if you have PPP support]) |
768 | 778 | |
769 | 779 | AC_ARG_WITH([pppd-plugin-dir], |
770 | 780 | AS_HELP_STRING([--with-pppd-plugin-dir=DIR], [path to the pppd plugins directory])) |
771 | ||
772 | 781 | if test -n "$with_pppd_plugin_dir" ; then |
773 | 782 | PPPD_PLUGIN_DIR="$with_pppd_plugin_dir" |
774 | 783 | else |
775 | PPPD_PLUGIN_DIR="${libdir}/pppd/2.4.5" | |
784 | PPPD_PLUGIN_DIR="${libdir}/pppd/$PPPD_VERSION" | |
776 | 785 | fi |
777 | 786 | 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]) | |
778 | 788 | |
779 | 789 | AC_ARG_WITH(pppd, AS_HELP_STRING([--with-pppd=/path/to/pppd], [path to pppd binary])) |
780 | 790 | if test "x${with_pppd}" = x; then |
325 | 325 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
326 | 326 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
327 | 327 | POSUB = @POSUB@ |
328 | PPPD_CFLAGS = @PPPD_CFLAGS@ | |
328 | 329 | PPPD_PATH = @PPPD_PATH@ |
329 | 330 | PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ |
330 | 331 | PTHREAD_CC = @PTHREAD_CC@ |
1564 | 1564 | <code class="literal">NM_CONFIG_ENABLE_TAG</code>, like: |
1565 | 1565 | </p> |
1566 | 1566 | <pre class="programlisting"> |
1567 | # always skip loading the file when running NetworkManager with | |
1567 | # only load the file when running NetworkManager with | |
1568 | 1568 | # environment variable "NM_CONFIG_ENABLE_TAG=TAG1" |
1569 | 1569 | [.config] |
1570 | 1570 | enable=env:TAG1 |
15 | 15 | <div> |
16 | 16 | <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> |
17 | 17 | <div><p class="releaseinfo"> |
18 | for NetworkManager 1.42.6 | |
18 | for NetworkManager 1.42.8 | |
19 | 19 | |
20 | 20 | The latest version of this documentation can be found on-line at |
21 | 21 | <a class="ulink" href="https://networkmanager.dev/docs/api/latest/" target="_top">https://networkmanager.dev/docs/api/latest/</a>. |
1342 | 1342 | </dt> |
1343 | 1343 | <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> |
1344 | 1344 | </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> | |
1346 | 1346 | </dt> |
1347 | 1347 | <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> |
1348 | 1348 | </dt> |
1608 | 1608 | <a name="nm-settings-dbus.property.infiniband.p-key"></a>p-key</td> |
1609 | 1609 | <td align="left">int32</td> |
1610 | 1610 | <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> | |
1612 | 1616 | </tr> |
1613 | 1617 | <tr> |
1614 | 1618 | <td align="left"> |
4671 | 4675 | <th>Default Value</th> |
4672 | 4676 | <th>Value Description</th> |
4673 | 4677 | </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> | |
4675 | 4687 | <td align="left"> |
4676 | 4688 | <a name="nm-settings-dbus.property.bond-port.queue-id"></a>queue-id</td> |
4677 | 4689 | <td align="left">uint32</td> |
4678 | 4690 | <td align="left">0</td> |
4679 | 4691 | <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> | |
4681 | 4694 | </table></div> |
4682 | 4695 | </div> |
4683 | 4696 | <hr> |
1100 | 1100 | <th>Default</th> |
1101 | 1101 | <th>Description</th> |
1102 | 1102 | </tr></thead> |
1103 | <tbody><tr> | |
1103 | <tbody> | |
1104 | <tr> | |
1104 | 1105 | <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> | |
1106 | 1108 | <td align="left">0</td> |
1107 | 1109 | <td align="left">Queue ID.<span class="bold"><strong> |
1108 | 1110 | |
1109 | 1111 | 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> | |
1111 | 1123 | </table></div> |
1112 | 1124 | </div> |
1113 | 1125 | <br class="table-break"><div class="table"> |
1891 | 1903 | </tr> |
1892 | 1904 | <tr> |
1893 | 1905 | <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> | |
1895 | 1907 | <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> | |
1897 | 1909 | |
1898 | 1910 | Example: </strong></span>PKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0.8002</td> |
1899 | 1911 | </tr> |
1974 | 1974 | <td> |
1975 | 1975 | <p> |
1976 | 1976 | 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> | |
1978 | 1980 | <p> |
1979 | 1981 | Format: int32</p> |
1980 | 1982 | </td> |
5484 | 5486 | <col align="left" valign="top"> |
5485 | 5487 | <col> |
5486 | 5488 | </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> | |
5488 | 5501 | <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> |
5489 | 5502 | <td> |
5490 | 5503 | <p> |
5493 | 5506 | <p> |
5494 | 5507 | Format: uint32</p> |
5495 | 5508 | </td> |
5496 | </tr></tbody> | |
5509 | </tr> | |
5510 | </tbody> | |
5497 | 5511 | </table></div> |
5498 | 5512 | </div> |
5499 | 5513 | <hr> |
51 | 51 | <th>Default Value</th> |
52 | 52 | <th>Value Description</th> |
53 | 53 | </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> | |
55 | 62 | <td><pre class="screen">queue-id</pre></td> |
56 | 63 | <td><pre class="screen">uint32</pre></td> |
57 | 64 | <td><pre class="screen">0</pre></td> |
58 | 65 | <td> </td> |
59 | </tr></tbody> | |
66 | </tr> | |
67 | </tbody> | |
60 | 68 | </table></div> |
61 | 69 | </div> |
62 | 70 | <p><br class="table-break"></p> |
97 | 97 | Properties |
98 | 98 | </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"> |
99 | 99 | 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"> | |
101 | 101 | Properties |
102 | 102 | </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"> |
103 | 103 | Properties |
322 | 322 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ |
323 | 323 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ |
324 | 324 | POSUB = @POSUB@ |
325 | PPPD_CFLAGS = @PPPD_CFLAGS@ | |
325 | 326 | PPPD_PATH = @PPPD_PATH@ |
326 | 327 | PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@ |
327 | 328 | PTHREAD_CC = @PTHREAD_CC@ |
322 | 322 | 14 |
323 | 323 | 15 |
324 | 324 | 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> | |
328 | 328 | |
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">"my really cool PSK"</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">"my really cool PSK"</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> | |
336 | 336 | |
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> | |
338 | 338 | |
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> | |
341 | 341 | </tr> |
342 | 342 | </tbody> |
343 | 343 | </table> |
54 | 54 | <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> |
55 | 55 | </td> |
56 | 56 | </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> | |
57 | 65 | </tbody> |
58 | 66 | </table></div> |
59 | 67 | </div> |
72 | 80 | <tr> |
73 | 81 | <td class="define_keyword">#define</td> |
74 | 82 | <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> | |
75 | 87 | </tr> |
76 | 88 | </tbody> |
77 | 89 | </table></div> |
121 | 133 | </div> |
122 | 134 | <p class="since">Since: 1.34</p> |
123 | 135 | </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> | |
124 | 162 | </div> |
125 | 163 | <div class="refsect1"> |
126 | 164 | <a name="NMSettingBondPort.other_details"></a><h2>Types and Values</h2> |
135 | 173 | <pre class="programlisting">#define NM_SETTING_BOND_PORT_QUEUE_ID "queue-id" |
136 | 174 | </pre> |
137 | 175 | </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> | |
138 | 182 | </div> |
139 | 183 | </div> |
140 | 184 | <div class="footer"> |
1660 | 1660 | </dt> |
1661 | 1661 | <dd></dd> |
1662 | 1662 | <dt> |
1663 | NMSettingBondPort:prio, object property in NMSettingOvs | |
1664 | </dt> | |
1665 | <dd></dd> | |
1666 | <dt> | |
1663 | 1667 | NMSettingBondPort:queue-id, object property in NMSettingOvs |
1664 | 1668 | </dt> |
1665 | 1669 | <dd></dd> |
4064 | 4068 | </dt> |
4065 | 4069 | <dd></dd> |
4066 | 4070 | <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> | |
4067 | 4075 | <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> |
4068 | 4076 | </dt> |
4069 | 4077 | <dd></dd> |
9076 | 9084 | </dt> |
9077 | 9085 | <dd></dd> |
9078 | 9086 | <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> | |
9079 | 9091 | <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> |
9080 | 9092 | </dt> |
9081 | 9093 | <dd></dd> |
9084 | 9096 | </dt> |
9085 | 9097 | <dd></dd> |
9086 | 9098 | <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> | |
9087 | 9103 | <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> |
9088 | 9104 | </dt> |
9089 | 9105 | <dd></dd> |
14217 | 14233 | <dd></dd> |
14218 | 14234 | <dt> |
14219 | 14235 | <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> | |
14220 | 14240 | </dt> |
14221 | 14241 | <dd></dd> |
14222 | 14242 | <dt> |
14 | 14 | <div> |
15 | 15 | <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> |
16 | 16 | <div><p class="releaseinfo"> |
17 | for libnm 1.42.6 | |
17 | for libnm 1.42.8 | |
18 | 18 | |
19 | 19 | The latest version of this documentation can be found on-line at |
20 | 20 | <a class="ulink" href="https://networkmanager.dev/docs/libnm/latest/" target="_top">https://networkmanager.dev/docs/libnm/latest/</a>. |
175 | 175 | </tr> |
176 | 176 | <tr> |
177 | 177 | <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> | |
178 | 182 | <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> |
179 | 183 | </tr> |
180 | 184 | <tr> |
260 | 264 | <hr> |
261 | 265 | <div class="refsect2"> |
262 | 266 | <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) | |
264 | 268 | </pre> |
265 | 269 | <p>Evaluates to the micro version number of NetworkManager which this source |
266 | 270 | compiled against.</p> |
413 | 417 | <div class="refsect2"> |
414 | 418 | <a name="NM-VERSION-1-42-2:CAPS"></a><h3>NM_VERSION_1_42_2</h3> |
415 | 419 | <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)) | |
416 | 426 | </pre> |
417 | 427 | </div> |
418 | 428 | <hr> |
383 | 383 | <td class="define_keyword">#define</td> |
384 | 384 | <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> |
385 | 385 | </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> | |
386 | 390 | </tbody> |
387 | 391 | </table></div> |
388 | 392 | </div> |
819 | 823 | <div class="refsect2"> |
820 | 824 | <a name="NM-AVAILABLE-IN-1-42-2:CAPS"></a><h3>NM_AVAILABLE_IN_1_42_2</h3> |
821 | 825 | <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) | |
822 | 832 | </pre> |
823 | 833 | </div> |
824 | 834 | </div> |
981 | 981 | <keyword type="macro" name="NM_SETTING_BLUETOOTH_TYPE_NAP" link="NMSettingBluetooth.html#NM-SETTING-BLUETOOTH-TYPE-NAP:CAPS"/> |
982 | 982 | <keyword type="function" name="nm_setting_bond_port_new ()" link="NMSettingBondPort.html#nm-setting-bond-port-new" since="1.34"/> |
983 | 983 | <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"/> | |
984 | 985 | <keyword type="macro" name="NM_SETTING_BOND_PORT_SETTING_NAME" link="NMSettingBondPort.html#NM-SETTING-BOND-PORT-SETTING-NAME:CAPS"/> |
985 | 986 | <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"/> | |
986 | 988 | <keyword type="function" name="nm_setting_bond_new ()" link="NMSettingBond.html#nm-setting-bond-new"/> |
987 | 989 | <keyword type="function" name="nm_setting_bond_get_num_options ()" link="NMSettingBond.html#nm-setting-bond-get-num-options"/> |
988 | 990 | <keyword type="function" name="nm_setting_bond_get_option ()" link="NMSettingBond.html#nm-setting-bond-get-option"/> |
3246 | 3248 | <keyword type="macro" name="NM_DEPRECATED_IN_1_42" link="libnm-nm-version.html#NM-DEPRECATED-IN-1-42:CAPS"/> |
3247 | 3249 | <keyword type="macro" name="NM_AVAILABLE_IN_1_42" link="libnm-nm-version.html#NM-AVAILABLE-IN-1-42:CAPS"/> |
3248 | 3250 | <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"/> | |
3249 | 3252 | <keyword type="macro" name="NM_CHECK_VERSION()" link="libnm-nm-version-macros.html#NM-CHECK-VERSION:CAPS"/> |
3250 | 3253 | <keyword type="macro" name="NM_ENCODE_VERSION()" link="libnm-nm-version-macros.html#NM-ENCODE-VERSION:CAPS"/> |
3251 | 3254 | <keyword type="macro" name="NM_MAJOR_VERSION" link="libnm-nm-version-macros.html#NM-MAJOR-VERSION:CAPS"/> |
3276 | 3279 | <keyword type="macro" name="NM_VERSION_1_40" link="libnm-nm-version-macros.html#NM-VERSION-1-40:CAPS"/> |
3277 | 3280 | <keyword type="macro" name="NM_VERSION_1_42" link="libnm-nm-version-macros.html#NM-VERSION-1-42:CAPS"/> |
3278 | 3281 | <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"/> | |
3279 | 3283 | <keyword type="macro" name="NM_API_VERSION" link="libnm-nm-version-macros.html#NM-API-VERSION:CAPS"/> |
3280 | 3284 | <keyword type="macro" name="NM_VERSION_CUR_STABLE" link="libnm-nm-version-macros.html#NM-VERSION-CUR-STABLE:CAPS"/> |
3281 | 3285 | <keyword type="macro" name="NM_VERSION_NEXT_STABLE" link="libnm-nm-version-macros.html#NM-VERSION-NEXT-STABLE:CAPS"/> |
72 | 72 | 10 |
73 | 73 | 11 |
74 | 74 | 12</pre></td> |
75 | <td class="listing_code"><pre class="programlisting"><span class="cp">#include</span><span class="w"> </span><span class="cpf"><glib.h></span><span class="cp"></span> | |
76 | <span class="cp">#include</span><span class="w"> </span><span class="cpf"><NetworkManager.h></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">"NetworkManager version: %s</span><span class="se">\n</span><span class="s">"</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"><glib.h></span> | |
76 | <span class="cp">#include</span><span class="w"> </span><span class="cpf"><NetworkManager.h></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">"NetworkManager version: %s</span><span class="se">\n</span><span class="s">"</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> | |
87 | 87 | </tr> |
88 | 88 | </tbody> |
89 | 89 | </table> |
95 | 95 | </p> |
96 | 96 | <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> |
97 | 97 | <code class="prompt">$ </code><strong class="userinput"><code>./hello-nm</code></strong> |
98 | NetworkManager version: 1.42.6 | |
98 | NetworkManager version: 1.42.8 | |
99 | 99 | |
100 | 100 | <code class="prompt">$ </code></pre> |
101 | 101 | <p> |
113 | 113 | <td class="listing_lines" align="right"><pre>1 |
114 | 114 | 2 |
115 | 115 | 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">>=</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">"$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8"</span><span class="w"></span> | |
118 | <span class="n">LIBNM_CFLAGS</span><span class="o">=</span><span class="s">"$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8"</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">>=</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">"$LIBNM_CFLAGS -DNM_VERSION_MIN_REQUIRED=NM_VERSION_1_8"</span> | |
118 | <span class="n">LIBNM_CFLAGS</span><span class="o">=</span><span class="s">"$LIBNM_CFLAGS -DNM_VERSION_MAX_ALLOWED=NM_VERSION_1_8"</span></pre></td> | |
119 | 119 | </tr> |
120 | 120 | </tbody> |
121 | 121 | </table> |
136 | 136 | 4 |
137 | 137 | 5 |
138 | 138 | 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">'</span><span class="n">NM</span><span class="err">'</span><span class="p">,</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</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">"NetworkManager version "</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">'</span><span class="n">NM</span><span class="err">'</span><span class="p">,</span><span class="w"> </span><span class="err">'</span><span class="mf">1.0</span><span class="err">'</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">"NetworkManager version "</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> | |
145 | 145 | </tr> |
146 | 146 | </tbody> |
147 | 147 | </table> |
2189 | 2189 | <TITLE>NMSettingBondPort</TITLE> |
2190 | 2190 | NM_SETTING_BOND_PORT_SETTING_NAME |
2191 | 2191 | NM_SETTING_BOND_PORT_QUEUE_ID |
2192 | NM_SETTING_BOND_PORT_PRIO | |
2192 | 2193 | nm_setting_bond_port_new |
2193 | 2194 | nm_setting_bond_port_get_queue_id |
2195 | nm_setting_bond_port_get_prio | |
2194 | 2196 | <SUBSECTION Standard> |
2195 | 2197 | NMSettingBondPortClass |
2196 | 2198 | NM_IS_SETTING_BOND_PORT |
4425 | 4427 | NM_DEPRECATED_IN_1_42_FOR |
4426 | 4428 | NM_AVAILABLE_IN_1_42 |
4427 | 4429 | NM_AVAILABLE_IN_1_42_2 |
4430 | NM_AVAILABLE_IN_1_42_8 | |
4428 | 4431 | </SECTION> |
4429 | 4432 | |
4430 | 4433 | <SECTION> |
4459 | 4462 | NM_VERSION_1_40 |
4460 | 4463 | NM_VERSION_1_42 |
4461 | 4464 | NM_VERSION_1_42_2 |
4465 | NM_VERSION_1_42_8 | |
4462 | 4466 | NM_API_VERSION |
4463 | 4467 | NM_VERSION_CUR_STABLE |
4464 | 4468 | NM_VERSION_NEXT_STABLE |
1 | 1 | .\" Title: NetworkManager-dispatcher |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Network management daemons |
6 | .\" Source: NetworkManager-dispatcher 1.42.6 | |
6 | .\" Source: NetworkManager-dispatcher 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | 9 | .TH "NETWORKMANAGER\-DISPATCHER" "8" "" "NetworkManager\-dispatcher 1\&" "Network management daemons" |
1 | 1 | .\" Title: NetworkManager-wait-online.service |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Network management daemons |
6 | .\" Source: NetworkManager-wait-online.service 1.42.6 | |
6 | .\" Source: NetworkManager-wait-online.service 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | 9 | .TH "NETWORKMANAGER\-WAIT\-ONLINE\&" "8" "" "NetworkManager\-wait\-online\&" "Network management daemons" |
1 | 1 | .\" Title: NetworkManager |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Network management daemons |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.42\&.6" "Network management daemons" | |
9 | .TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.42\&.8" "Network management daemons" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: NetworkManager.conf |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Configuration |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.42\&.6" "Configuration" | |
9 | .TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.42\&.8" "Configuration" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1371 | 1371 | .RS 4 |
1372 | 1372 | .\} |
1373 | 1373 | .nf |
1374 | # always skip loading the file when running NetworkManager with | |
1374 | # only load the file when running NetworkManager with | |
1375 | 1375 | # environment variable "NM_CONFIG_ENABLE_TAG=TAG1" |
1376 | 1376 | [\&.config] |
1377 | 1377 | enable=env:TAG1 |
1567 | 1567 | You can also match against the value of the environment variable |
1568 | 1568 | <literal>NM_CONFIG_ENABLE_TAG</literal>, like: |
1569 | 1569 | <programlisting> |
1570 | # always skip loading the file when running NetworkManager with | |
1570 | # only load the file when running NetworkManager with | |
1571 | 1571 | # environment variable "NM_CONFIG_ENABLE_TAG=TAG1" |
1572 | 1572 | [.config] |
1573 | 1573 | enable=env:TAG1 |
1 | 1 | .\" Title: nm-cloud-setup |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Automatic Network Configuration in Cloud with NetworkManager |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
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" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: nm-initrd-generator |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: System Administration |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.42\&.6" "System Administration" | |
9 | .TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.42\&.8" "System Administration" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: nm-online |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: General Commands Manual |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.42\&.6" "General Commands Manual" | |
9 | .TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.42\&.8" "General Commands Manual" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: nm-openvswitch |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Open vSwitch support overview |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
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" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: nm-settings-dbus |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Configuration |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.42\&.6" "Configuration" | |
9 | .TH "NM\-SETTINGS\-DBUS" "5" "" "NetworkManager 1\&.42\&.8" "Configuration" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
2008 | 2008 | T}:T{ |
2009 | 2009 | \-1 |
2010 | 2010 | 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\&. | |
2012 | 2016 | T} |
2013 | 2017 | T{ |
2014 | 2018 | parent |
5856 | 5860 | Value Description |
5857 | 5861 | T} |
5858 | 5862 | .T& |
5863 | l l l l | |
5859 | 5864 | 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} | |
5860 | 5874 | T{ |
5861 | 5875 | queue\-id |
5862 | 5876 | T}:T{ |
0 | 0 | <?xml version="1.0"?> |
1 | 1 | <!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> | |
3 | 3 | NetworkManager is based on a concept of connection profiles, sometimes referred to as |
4 | 4 | connections only. These connection profiles contain a network configuration. When |
5 | 5 | NetworkManager activates a connection profile on a network device the configuration will |
151 | 151 | |
152 | 152 | 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. |
153 | 153 | |
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'. | |
155 | 159 | 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. |
156 | 160 | |
157 | 161 | 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. |
447 | 451 | |
448 | 452 | 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. |
449 | 453 | |
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. | |
451 | 455 | |
452 | 456 | 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. |
453 | 457 |
1 | 1 | .\" Title: nm-settings-ifcfg-rh |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Configuration |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.42\&.6" "Configuration" | |
9 | .TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.42\&.8" "Configuration" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1511 | 1511 | Description |
1512 | 1512 | T} |
1513 | 1513 | .T& |
1514 | l l l l | |
1514 | 1515 | l l l l. |
1515 | 1516 | T{ |
1516 | 1517 | queue\-id |
1517 | 1518 | T}:T{ |
1518 | BONDING_OPTS: queue\-id= | |
1519 | BOND_PORT_QUEUE_ID\fI(+)\fR | |
1519 | 1520 | T}:T{ |
1520 | 1521 | 0 |
1521 | 1522 | T}:T{ |
1522 | 1523 | Queue ID\&.\fB |
1523 | 1524 | |
1524 | 1525 | 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 | |
1525 | 1537 | T} |
1526 | 1538 | .TE |
1527 | 1539 | .sp 1 |
2598 | 2610 | T{ |
2599 | 2611 | p\-key |
2600 | 2612 | T}:T{ |
2601 | PKEY_ID (and PKEY=yes) | |
2613 | PKEY_ID or PKEY_ID_NM(*) (requires PKEY=yes) | |
2602 | 2614 | T}:T{ |
2603 | 2615 | PKEY=no |
2604 | 2616 | 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 | |
2606 | 2618 | |
2607 | 2619 | Example: \fRPKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0\&.8002 |
2608 | 2620 | T} |
0 | 0 | <?xml version="1.0"?> |
1 | 1 | <!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> | |
3 | 3 | NetworkManager is based on the concept of connection profiles that contain |
4 | 4 | network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be |
5 | 5 | stored in various formats. NetworkManager uses plugins for reading and writing |
275 | 275 | |
276 | 276 | 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"> |
277 | 277 | |
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"> | |
281 | 283 | |
282 | 284 | 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"> |
283 | 285 | |
420 | 422 | |
421 | 423 | 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"> |
422 | 424 | |
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"> | |
424 | 426 | |
425 | 427 | 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"> |
426 | 428 |
1 | 1 | .\" Title: nm-settings-keyfile |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Configuration |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.42\&.6" "Configuration" | |
9 | .TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.42\&.8" "Configuration" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
0 | 0 | <?xml version="1.0"?> |
1 | 1 | <!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> | |
3 | 3 | NetworkManager is based on the concept of connection profiles that contain |
4 | 4 | network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be |
5 | 5 | stored in various formats. NetworkManager uses plugins for reading and writing |
1 | 1 | .\" Title: nm-settings-nmcli |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Configuration |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.42\&.6" "Configuration" | |
9 | .TH "NM\-SETTINGS\-NMCLI" "5" "" "NetworkManager 1\&.42\&.8" "Configuration" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1734 | 1734 | .RS 4 |
1735 | 1735 | Alias: p\-key |
1736 | 1736 | .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\&. | |
1738 | 1742 | .sp |
1739 | 1743 | Format: int32 |
1740 | 1744 | .RE |
4984 | 4988 | .PP |
4985 | 4989 | Properties: |
4986 | 4990 | .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 | |
4987 | 5000 | \fBqueue\-id\fR |
4988 | 5001 | .RS 4 |
4989 | 5002 | Alias: queue\-id |
0 | 0 | <?xml version="1.0"?> |
1 | 1 | <!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> | |
3 | 3 | NetworkManager is based on a concept of connection profiles, sometimes referred to as |
4 | 4 | connections only. These connection profiles contain a network configuration. When |
5 | 5 | NetworkManager activates a connection profile on a network device the configuration will |
250 | 250 | Format: byte array</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.mtu">mtu</option></term><listitem><para> |
251 | 251 | 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> |
252 | 252 | 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> | |
254 | 254 | Format: int32</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.parent">parent</option></term><listitem><para> |
255 | 255 | 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> |
256 | 256 | Format: string</para></listitem></varlistentry><varlistentry><term><option id="nm-settings-nmcli.property.infiniband.transport-mode">transport-mode</option></term><listitem><para> |
1199 | 1199 | Alias: short-addr</para><para>Short IEEE 802.15.4 address to be used within a restricted environment.</para><para> |
1200 | 1200 | Format: uint32</para></listitem></varlistentry></variablelist></para></refsect2><refsect2><title>bond-port setting</title><para>Bond Port Settings.</para><para> |
1201 | 1201 | 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> | |
1203 | 1205 | 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> |
1204 | 1206 | Format: uint32</para></listitem></varlistentry></variablelist></para></refsect2><refsect2><title>hostname setting</title><para>Hostname settings.</para><para> |
1205 | 1207 | Properties: |
1 | 1 | .\" Title: nmcli-examples |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: Examples |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.42\&.6" "Examples" | |
9 | .TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.42\&.8" "Examples" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: nmcli |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: General Commands Manual |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NMCLI" "1" "" "NetworkManager 1\&.42\&.6" "General Commands Manual" | |
9 | .TH "NMCLI" "1" "" "NetworkManager 1\&.42\&.8" "General Commands Manual" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
1 | 1 | .\" Title: nmtui |
2 | 2 | .\" Author: |
3 | 3 | .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/> |
4 | .\" Date: 04/20/2023 | |
4 | .\" Date: 06/28/2023 | |
5 | 5 | .\" Manual: General Commands Manual |
6 | .\" Source: NetworkManager 1.42.6 | |
6 | .\" Source: NetworkManager 1.42.8 | |
7 | 7 | .\" Language: English |
8 | 8 | .\" |
9 | .TH "NMTUI" "1" "" "NetworkManager 1\&.42\&.6" "General Commands Manual" | |
9 | .TH "NMTUI" "1" "" "NetworkManager 1\&.42\&.8" "General Commands Manual" | |
10 | 10 | .\" ----------------------------------------------------------------- |
11 | 11 | .\" * Define some portability stuff |
12 | 12 | .\" ----------------------------------------------------------------- |
5 | 5 | # - add corresponding NM_VERSION_x_y_z macros in |
6 | 6 | # "src/libnm-core-public/nm-version-macros.h.in" |
7 | 7 | # - update number in configure.ac |
8 | version: '1.42.6', | |
8 | version: '1.42.8', | |
9 | 9 | license: 'GPL2+', |
10 | 10 | default_options: [ |
11 | 11 | 'buildtype=debugoptimized', |
559 | 559 | |
560 | 560 | # pppd |
561 | 561 | enable_ppp = get_option('ppp') |
562 | NM_PPP_VERSION_2_5_OR_NEWER = 0 | |
562 | 563 | 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 | |
564 | 572 | |
565 | 573 | pppd_path = get_option('pppd') |
566 | 574 | if pppd_path == '' |
573 | 581 | |
574 | 582 | pppd_plugin_dir = get_option('pppd_plugin_dir') |
575 | 583 | 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) | |
577 | 585 | endif |
578 | 586 | endif |
579 | 587 | 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) | |
580 | 589 | |
581 | 590 | # ModemManager1 with libmm-glib |
582 | 591 | enable_modem_manager = get_option('modem_manager') |
5 | 5 | #, fuzzy |
6 | 6 | msgid "" |
7 | 7 | msgstr "" |
8 | "Project-Id-Version: NetworkManager 1.42.6\n" | |
8 | "Project-Id-Version: NetworkManager 1.42.8\n" | |
9 | 9 | "Report-Msgid-Bugs-To: https://gitlab.freedesktop.org/NetworkManager/" |
10 | 10 | "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" | |
12 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
171 | 171 | msgstr "" |
172 | 172 | |
173 | 173 | #: 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 | |
175 | 175 | msgid "ADSL connection" |
176 | 176 | msgstr "" |
177 | 177 | |
248 | 248 | msgstr "" |
249 | 249 | |
250 | 250 | #: 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 | |
252 | 252 | msgid "Veth connection" |
253 | 253 | msgstr "" |
254 | 254 | |
261 | 261 | msgstr "" |
262 | 262 | |
263 | 263 | #: 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 | |
265 | 265 | msgid "InfiniBand connection" |
266 | 266 | msgstr "" |
267 | 267 | |
282 | 282 | msgstr "" |
283 | 283 | |
284 | 284 | #: 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 | |
286 | 286 | msgid "VLAN connection" |
287 | 287 | msgstr "" |
288 | 288 | |
289 | 289 | #: 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 | |
291 | 291 | msgid "VRF connection" |
292 | 292 | msgstr "" |
293 | 293 | |
294 | 294 | #: 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 | |
296 | 296 | msgid "VXLAN connection" |
297 | 297 | msgstr "" |
298 | 298 | |
597 | 597 | msgid "Show NetworkManager options" |
598 | 598 | msgstr "" |
599 | 599 | |
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 | |
601 | 601 | msgid "VPN connection" |
602 | 602 | msgstr "" |
603 | 603 | |
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 | |
605 | 605 | #: 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 | |
607 | 607 | msgid "Bond" |
608 | 608 | msgstr "" |
609 | 609 | |
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 | |
611 | 611 | #: 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 | |
613 | 613 | msgid "Team" |
614 | 614 | msgstr "" |
615 | 615 | |
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 | |
617 | 617 | #: 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 | |
619 | 619 | msgid "Bridge" |
620 | 620 | msgstr "" |
621 | 621 | |
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 | |
623 | 623 | #: src/libnm-core-impl/nm-team-utils.c:2391 |
624 | 624 | msgid "invalid json" |
625 | 625 | msgstr "" |
893 | 893 | msgstr "" |
894 | 894 | |
895 | 895 | #: 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 | |
897 | 897 | msgid "InfiniBand" |
898 | 898 | msgstr "" |
899 | 899 | |
900 | 900 | #: 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 | |
902 | 902 | #: src/nmtui/nmt-page-vlan.c:57 |
903 | 903 | msgid "VLAN" |
904 | 904 | msgstr "" |
949 | 949 | msgstr "" |
950 | 950 | |
951 | 951 | #: 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 | |
953 | 953 | #: src/nmtui/nmt-page-wireguard.c:57 |
954 | 954 | msgid "WireGuard" |
955 | 955 | msgstr "" |
1138 | 1138 | msgid "has duplicate UUIDs" |
1139 | 1139 | msgstr "" |
1140 | 1140 | |
1141 | #: src/libnm-core-impl/nm-connection.c:1793 | |
1141 | #: src/libnm-core-impl/nm-connection.c:1816 | |
1142 | 1142 | msgid "setting not found" |
1143 | 1143 | msgstr "" |
1144 | 1144 | |
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 | |
1148 | 1148 | msgid "setting is required for non-slave connections" |
1149 | 1149 | msgstr "" |
1150 | 1150 | |
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 | |
1154 | 1154 | msgid "setting not allowed in slave connection" |
1155 | 1155 | msgstr "" |
1156 | 1156 | |
1157 | #: src/libnm-core-impl/nm-connection.c:2021 | |
1157 | #: src/libnm-core-impl/nm-connection.c:2044 | |
1158 | 1158 | msgid "Unexpected failure to normalize the connection" |
1159 | 1159 | msgstr "" |
1160 | 1160 | |
1161 | #: src/libnm-core-impl/nm-connection.c:2082 | |
1161 | #: src/libnm-core-impl/nm-connection.c:2105 | |
1162 | 1162 | msgid "Unexpected failure to verify the connection" |
1163 | 1163 | msgstr "" |
1164 | 1164 | |
1165 | #: src/libnm-core-impl/nm-connection.c:2119 | |
1165 | #: src/libnm-core-impl/nm-connection.c:2142 | |
1166 | 1166 | #, c-format |
1167 | 1167 | msgid "unexpected uuid %s instead of %s" |
1168 | 1168 | msgstr "" |
1169 | 1169 | |
1170 | #: src/libnm-core-impl/nm-connection.c:3049 | |
1170 | #: src/libnm-core-impl/nm-connection.c:3072 | |
1171 | 1171 | #: src/libnm-core-impl/nm-setting-8021x.c:2623 |
1172 | 1172 | #: src/libnm-core-impl/nm-setting-8021x.c:2660 |
1173 | 1173 | #: src/libnm-core-impl/nm-setting-8021x.c:2678 |
1193 | 1193 | msgid "property is missing" |
1194 | 1194 | msgstr "" |
1195 | 1195 | |
1196 | #: src/libnm-core-impl/nm-connection.c:3202 | |
1196 | #: src/libnm-core-impl/nm-connection.c:3225 | |
1197 | 1197 | msgid "IP Tunnel" |
1198 | 1198 | msgstr "" |
1199 | 1199 | |
1200 | #: src/libnm-core-impl/nm-connection.c:3206 | |
1200 | #: src/libnm-core-impl/nm-connection.c:3229 | |
1201 | 1201 | msgid "TUN/TAP" |
1202 | 1202 | msgstr "" |
1203 | 1203 | |
1550 | 1550 | |
1551 | 1551 | #: src/libnm-core-impl/nm-setting-8021x.c:2825 |
1552 | 1552 | #: 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 | |
1555 | 1555 | #: src/libnm-core-impl/nm-setting-ip4-config.c:234 |
1556 | 1556 | #: src/libnm-core-impl/nm-setting-ip4-config.c:250 |
1557 | 1557 | #: src/libnm-core-impl/nm-setting-ip6-config.c:281 |
1610 | 1610 | msgid "'%s' connection requires '%s' setting" |
1611 | 1611 | msgstr "" |
1612 | 1612 | |
1613 | #: src/libnm-core-impl/nm-setting-bond-port.c:82 | |
1613 | #: src/libnm-core-impl/nm-setting-bond-port.c:99 | |
1614 | 1614 | #: src/libnm-core-impl/nm-setting-bridge-port.c:328 |
1615 | 1615 | #: src/libnm-core-impl/nm-setting-ovs-bridge.c:151 |
1616 | 1616 | #: src/libnm-core-impl/nm-setting-ovs-interface.c:306 |
1619 | 1619 | msgid "missing setting" |
1620 | 1620 | msgstr "" |
1621 | 1621 | |
1622 | #: src/libnm-core-impl/nm-setting-bond-port.c:92 | |
1622 | #: src/libnm-core-impl/nm-setting-bond-port.c:109 | |
1623 | 1623 | #: src/libnm-core-impl/nm-setting-bridge-port.c:338 |
1624 | 1624 | #: src/libnm-core-impl/nm-setting-ovs-interface.c:329 |
1625 | 1625 | #: src/libnm-core-impl/nm-setting-ovs-port.c:434 |
1944 | 1944 | msgid "can't be enabled when manual configuration is present" |
1945 | 1945 | msgstr "" |
1946 | 1946 | |
1947 | #: src/libnm-core-impl/nm-setting-infiniband.c:229 | |
1947 | #: src/libnm-core-impl/nm-setting-infiniband.c:242 | |
1948 | 1948 | msgid "Must specify a P_Key if specifying parent" |
1949 | 1949 | msgstr "" |
1950 | 1950 | |
1951 | #: src/libnm-core-impl/nm-setting-infiniband.c:240 | |
1951 | #: src/libnm-core-impl/nm-setting-infiniband.c:253 | |
1952 | 1952 | msgid "InfiniBand P_Key connection did not specify parent interface name" |
1953 | 1953 | msgstr "" |
1954 | 1954 | |
1955 | #: src/libnm-core-impl/nm-setting-infiniband.c:248 | |
1955 | #: src/libnm-core-impl/nm-setting-infiniband.c:261 | |
1956 | 1956 | msgid "the values 0 and 0x8000 are not allowed" |
1957 | 1957 | msgstr "" |
1958 | 1958 | |
1959 | #: src/libnm-core-impl/nm-setting-infiniband.c:274 | |
1959 | #: src/libnm-core-impl/nm-setting-infiniband.c:289 | |
1960 | 1960 | #, c-format |
1961 | 1961 | msgid "" |
1962 | 1962 | "interface name of software infiniband device must be '%s' or unset (instead " |
1963 | 1963 | "it is '%s')" |
1964 | 1964 | msgstr "" |
1965 | 1965 | |
1966 | #: src/libnm-core-impl/nm-setting-infiniband.c:282 | |
1966 | #: src/libnm-core-impl/nm-setting-infiniband.c:297 | |
1967 | 1967 | #, c-format |
1968 | 1968 | msgid "" |
1969 | 1969 | "interface name of software infiniband device with MAC address must be unset " |
1970 | 1970 | "(instead it is '%s')" |
1971 | 1971 | msgstr "" |
1972 | 1972 | |
1973 | #: src/libnm-core-impl/nm-setting-infiniband.c:310 | |
1973 | #: src/libnm-core-impl/nm-setting-infiniband.c:323 | |
1974 | 1974 | #, c-format |
1975 | 1975 | msgid "mtu can be at most %u but it is %u" |
1976 | 1976 | msgstr "" |
4424 | 4424 | msgstr "" |
4425 | 4425 | |
4426 | 4426 | #: 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 | |
4428 | 4428 | msgid "MKA CAK" |
4429 | 4429 | msgstr "" |
4430 | 4430 | |
5005 | 5005 | msgstr "" |
5006 | 5006 | |
5007 | 5007 | #: 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 | |
5011 | 5011 | msgid "Password [none]" |
5012 | 5012 | msgstr "" |
5013 | 5013 | |
5020 | 5020 | msgid "Queue ID" |
5021 | 5021 | msgstr "" |
5022 | 5022 | |
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 | |
5029 | 5033 | msgid "MAC [none]" |
5030 | 5034 | msgstr "" |
5031 | 5035 | |
5032 | #: src/libnmc-setting/nm-meta-setting-desc.c:5253 | |
5036 | #: src/libnmc-setting/nm-meta-setting-desc.c:5259 | |
5033 | 5037 | msgid "Enable STP" |
5034 | 5038 | msgstr "" |
5035 | 5039 | |
5036 | #: src/libnmc-setting/nm-meta-setting-desc.c:5259 | |
5040 | #: src/libnmc-setting/nm-meta-setting-desc.c:5265 | |
5037 | 5041 | msgid "STP priority" |
5038 | 5042 | msgstr "" |
5039 | 5043 | |
5040 | #: src/libnmc-setting/nm-meta-setting-desc.c:5265 | |
5044 | #: src/libnmc-setting/nm-meta-setting-desc.c:5271 | |
5041 | 5045 | #: src/nmtui/nmt-page-bridge.c:120 |
5042 | 5046 | msgid "Forward delay" |
5043 | 5047 | msgstr "" |
5044 | 5048 | |
5045 | #: src/libnmc-setting/nm-meta-setting-desc.c:5271 | |
5049 | #: src/libnmc-setting/nm-meta-setting-desc.c:5277 | |
5046 | 5050 | #: src/nmtui/nmt-page-bridge.c:134 |
5047 | 5051 | msgid "Hello time" |
5048 | 5052 | msgstr "" |
5049 | 5053 | |
5050 | #: src/libnmc-setting/nm-meta-setting-desc.c:5277 | |
5054 | #: src/libnmc-setting/nm-meta-setting-desc.c:5283 | |
5051 | 5055 | #: src/nmtui/nmt-page-bridge.c:148 |
5052 | 5056 | msgid "Max age" |
5053 | 5057 | msgstr "" |
5054 | 5058 | |
5055 | #: src/libnmc-setting/nm-meta-setting-desc.c:5283 | |
5059 | #: src/libnmc-setting/nm-meta-setting-desc.c:5289 | |
5056 | 5060 | msgid "MAC address ageing time" |
5057 | 5061 | msgstr "" |
5058 | 5062 | |
5059 | #: src/libnmc-setting/nm-meta-setting-desc.c:5293 | |
5063 | #: src/libnmc-setting/nm-meta-setting-desc.c:5299 | |
5060 | 5064 | #: src/nmtui/nmt-page-bridge.c:156 |
5061 | 5065 | msgid "Group forward mask" |
5062 | 5066 | msgstr "" |
5063 | 5067 | |
5064 | #: src/libnmc-setting/nm-meta-setting-desc.c:5335 | |
5068 | #: src/libnmc-setting/nm-meta-setting-desc.c:5341 | |
5065 | 5069 | #: src/nmtui/nmt-page-bridge.c:79 |
5066 | 5070 | msgid "Enable IGMP snooping" |
5067 | 5071 | msgstr "" |
5068 | 5072 | |
5069 | #: src/libnmc-setting/nm-meta-setting-desc.c:5393 | |
5073 | #: src/libnmc-setting/nm-meta-setting-desc.c:5399 | |
5070 | 5074 | msgid "Bridge port priority" |
5071 | 5075 | msgstr "" |
5072 | 5076 | |
5073 | #: src/libnmc-setting/nm-meta-setting-desc.c:5399 | |
5077 | #: src/libnmc-setting/nm-meta-setting-desc.c:5405 | |
5074 | 5078 | msgid "Bridge port STP path cost" |
5075 | 5079 | msgstr "" |
5076 | 5080 | |
5077 | #: src/libnmc-setting/nm-meta-setting-desc.c:5405 | |
5081 | #: src/libnmc-setting/nm-meta-setting-desc.c:5411 | |
5078 | 5082 | msgid "Hairpin" |
5079 | 5083 | msgstr "" |
5080 | 5084 | |
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 | |
5084 | 5088 | msgid "Username [none]" |
5085 | 5089 | msgstr "" |
5086 | 5090 | |
5087 | #: src/libnmc-setting/nm-meta-setting-desc.c:5536 | |
5091 | #: src/libnmc-setting/nm-meta-setting-desc.c:5542 | |
5088 | 5092 | msgid "" |
5089 | 5093 | "Enter a list of user permissions. This is a list of user names formatted " |
5090 | 5094 | "as:\n" |
5094 | 5098 | "Example: alice bob charlie\n" |
5095 | 5099 | msgstr "" |
5096 | 5100 | |
5097 | #: src/libnmc-setting/nm-meta-setting-desc.c:5589 | |
5101 | #: src/libnmc-setting/nm-meta-setting-desc.c:5595 | |
5098 | 5102 | msgid "" |
5099 | 5103 | "Enter secondary connections that should be activated when this connection " |
5100 | 5104 | "is\n" |
5107 | 5111 | "Example: private-openvpn, fe6ba5d8-c2fc-4aae-b2e3-97efddd8d9a7\n" |
5108 | 5112 | msgstr "" |
5109 | 5113 | |
5110 | #: src/libnmc-setting/nm-meta-setting-desc.c:5612 | |
5114 | #: src/libnmc-setting/nm-meta-setting-desc.c:5618 | |
5111 | 5115 | msgid "" |
5112 | 5116 | "Enter a value which indicates whether the connection is subject to a data\n" |
5113 | 5117 | "quota, usage costs or other limitations. Accepted options are:\n" |
5116 | 5120 | "'unknown' to let NetworkManager choose a value using some heuristics\n" |
5117 | 5121 | msgstr "" |
5118 | 5122 | |
5119 | #: src/libnmc-setting/nm-meta-setting-desc.c:5937 | |
5123 | #: src/libnmc-setting/nm-meta-setting-desc.c:5943 | |
5120 | 5124 | msgid "APN" |
5121 | 5125 | msgstr "" |
5122 | 5126 | |
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 | |
5127 | 5131 | #: src/nmtui/nmt-page-ethernet.c:124 src/nmtui/nmt-page-infiniband.c:81 |
5128 | 5132 | #: src/nmtui/nmt-page-ip-tunnel.c:178 src/nmtui/nmt-page-vlan.c:100 |
5129 | 5133 | #: src/nmtui/nmt-page-wifi.c:395 src/nmtui/nmt-page-wireguard.c:85 |
5130 | 5134 | msgid "MTU" |
5131 | 5135 | msgstr "" |
5132 | 5136 | |
5133 | #: src/libnmc-setting/nm-meta-setting-desc.c:6029 | |
5137 | #: src/libnmc-setting/nm-meta-setting-desc.c:6035 | |
5134 | 5138 | msgid "P_KEY [none]" |
5135 | 5139 | msgstr "" |
5136 | 5140 | |
5137 | #: src/libnmc-setting/nm-meta-setting-desc.c:6038 | |
5141 | #: src/libnmc-setting/nm-meta-setting-desc.c:6044 | |
5138 | 5142 | msgid "Parent interface [none]" |
5139 | 5143 | msgstr "" |
5140 | 5144 | |
5141 | #: src/libnmc-setting/nm-meta-setting-desc.c:6065 | |
5145 | #: src/libnmc-setting/nm-meta-setting-desc.c:6071 | |
5142 | 5146 | msgid "" |
5143 | 5147 | "Enter a list of IPv4 addresses of DNS servers.\n" |
5144 | 5148 | "\n" |
5145 | 5149 | "Example: 8.8.8.8, 8.8.4.4\n" |
5146 | 5150 | msgstr "" |
5147 | 5151 | |
5148 | #: src/libnmc-setting/nm-meta-setting-desc.c:6112 | |
5152 | #: src/libnmc-setting/nm-meta-setting-desc.c:6118 | |
5149 | 5153 | msgid "IPv4 address (IP[/plen]) [none]" |
5150 | 5154 | msgstr "" |
5151 | 5155 | |
5152 | #: src/libnmc-setting/nm-meta-setting-desc.c:6114 | |
5156 | #: src/libnmc-setting/nm-meta-setting-desc.c:6120 | |
5153 | 5157 | msgid "" |
5154 | 5158 | "Enter a list of IPv4 addresses formatted as:\n" |
5155 | 5159 | " ip[/prefix], ip[/prefix],...\n" |
5158 | 5162 | "Example: 192.168.1.5/24, 10.0.0.11/24\n" |
5159 | 5163 | msgstr "" |
5160 | 5164 | |
5161 | #: src/libnmc-setting/nm-meta-setting-desc.c:6133 | |
5165 | #: src/libnmc-setting/nm-meta-setting-desc.c:6139 | |
5162 | 5166 | msgid "IPv4 gateway [none]" |
5163 | 5167 | msgstr "" |
5164 | 5168 | |
5165 | #: src/libnmc-setting/nm-meta-setting-desc.c:6141 | |
5169 | #: src/libnmc-setting/nm-meta-setting-desc.c:6147 | |
5166 | 5170 | msgid "" |
5167 | 5171 | "Enter a list of IPv4 routes formatted as:\n" |
5168 | 5172 | " ip[/prefix] [next-hop] [metric],...\n" |
5175 | 5179 | " 10.1.2.0/24\n" |
5176 | 5180 | msgstr "" |
5177 | 5181 | |
5178 | #: src/libnmc-setting/nm-meta-setting-desc.c:6181 | |
5182 | #: src/libnmc-setting/nm-meta-setting-desc.c:6187 | |
5179 | 5183 | msgid "" |
5180 | 5184 | "Enter a list of IPv4 routing rules formatted as:\n" |
5181 | 5185 | " priority [prio] [from [src]] [to [dst]], ,...\n" |
5182 | 5186 | "\n" |
5183 | 5187 | msgstr "" |
5184 | 5188 | |
5185 | #: src/libnmc-setting/nm-meta-setting-desc.c:6317 | |
5189 | #: src/libnmc-setting/nm-meta-setting-desc.c:6323 | |
5186 | 5190 | msgid "" |
5187 | 5191 | "Enter a list of IPv6 addresses of DNS servers. If the IPv6 configuration " |
5188 | 5192 | "method is 'auto' these DNS servers are appended to those (if any) returned " |
5194 | 5198 | "Example: 2607:f0d0:1002:51::4, 2607:f0d0:1002:51::1\n" |
5195 | 5199 | msgstr "" |
5196 | 5200 | |
5197 | #: src/libnmc-setting/nm-meta-setting-desc.c:6370 | |
5201 | #: src/libnmc-setting/nm-meta-setting-desc.c:6376 | |
5198 | 5202 | msgid "IPv6 address (IP[/plen]) [none]" |
5199 | 5203 | msgstr "" |
5200 | 5204 | |
5201 | #: src/libnmc-setting/nm-meta-setting-desc.c:6372 | |
5205 | #: src/libnmc-setting/nm-meta-setting-desc.c:6378 | |
5202 | 5206 | msgid "" |
5203 | 5207 | "Enter a list of IPv6 addresses formatted as:\n" |
5204 | 5208 | " ip[/prefix], ip[/prefix],...\n" |
5207 | 5211 | "Example: 2607:f0d0:1002:51::4/64, 1050:0:0:0:5:600:300c:326b\n" |
5208 | 5212 | msgstr "" |
5209 | 5213 | |
5210 | #: src/libnmc-setting/nm-meta-setting-desc.c:6391 | |
5214 | #: src/libnmc-setting/nm-meta-setting-desc.c:6397 | |
5211 | 5215 | msgid "IPv6 gateway [none]" |
5212 | 5216 | msgstr "" |
5213 | 5217 | |
5214 | #: src/libnmc-setting/nm-meta-setting-desc.c:6399 | |
5218 | #: src/libnmc-setting/nm-meta-setting-desc.c:6405 | |
5215 | 5219 | msgid "" |
5216 | 5220 | "Enter a list of IPv6 routes formatted as:\n" |
5217 | 5221 | " ip[/prefix] [next-hop] [metric],...\n" |
5225 | 5229 | " abbe::/64 55\n" |
5226 | 5230 | msgstr "" |
5227 | 5231 | |
5228 | #: src/libnmc-setting/nm-meta-setting-desc.c:6439 | |
5232 | #: src/libnmc-setting/nm-meta-setting-desc.c:6445 | |
5229 | 5233 | msgid "" |
5230 | 5234 | "Enter a list of IPv6 routing rules formatted as:\n" |
5231 | 5235 | " priority [prio] [from [src]] [to [dst]], ,...\n" |
5232 | 5236 | "\n" |
5233 | 5237 | msgstr "" |
5234 | 5238 | |
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 | |
5237 | 5241 | msgid "Parent device [none]" |
5238 | 5242 | msgstr "" |
5239 | 5243 | |
5240 | #: src/libnmc-setting/nm-meta-setting-desc.c:6579 | |
5244 | #: src/libnmc-setting/nm-meta-setting-desc.c:6585 | |
5241 | 5245 | msgid "Local endpoint [none]" |
5242 | 5246 | msgstr "" |
5243 | 5247 | |
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 | |
5246 | 5250 | msgid "Remote" |
5247 | 5251 | msgstr "" |
5248 | 5252 | |
5249 | #: src/libnmc-setting/nm-meta-setting-desc.c:6652 | |
5253 | #: src/libnmc-setting/nm-meta-setting-desc.c:6658 | |
5250 | 5254 | msgid "MACsec parent device or connection UUID" |
5251 | 5255 | msgstr "" |
5252 | 5256 | |
5253 | #: src/libnmc-setting/nm-meta-setting-desc.c:6673 | |
5257 | #: src/libnmc-setting/nm-meta-setting-desc.c:6679 | |
5254 | 5258 | msgid "Enable encryption" |
5255 | 5259 | msgstr "" |
5256 | 5260 | |
5257 | #: src/libnmc-setting/nm-meta-setting-desc.c:6689 | |
5261 | #: src/libnmc-setting/nm-meta-setting-desc.c:6695 | |
5258 | 5262 | msgid "MKA_CKN" |
5259 | 5263 | msgstr "" |
5260 | 5264 | |
5261 | #: src/libnmc-setting/nm-meta-setting-desc.c:6695 | |
5265 | #: src/libnmc-setting/nm-meta-setting-desc.c:6701 | |
5262 | 5266 | #: src/nmtui/nmt-page-macsec.c:170 |
5263 | 5267 | msgid "SCI port" |
5264 | 5268 | msgstr "" |
5265 | 5269 | |
5266 | #: src/libnmc-setting/nm-meta-setting-desc.c:6721 | |
5270 | #: src/libnmc-setting/nm-meta-setting-desc.c:6727 | |
5267 | 5271 | msgid "MACVLAN parent device or connection UUID" |
5268 | 5272 | msgstr "" |
5269 | 5273 | |
5270 | #: src/libnmc-setting/nm-meta-setting-desc.c:6742 | |
5274 | #: src/libnmc-setting/nm-meta-setting-desc.c:6748 | |
5271 | 5275 | msgid "Tap" |
5272 | 5276 | msgstr "" |
5273 | 5277 | |
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 | |
5276 | 5280 | msgid "SSID" |
5277 | 5281 | msgstr "" |
5278 | 5282 | |
5279 | #: src/libnmc-setting/nm-meta-setting-desc.c:6818 | |
5283 | #: src/libnmc-setting/nm-meta-setting-desc.c:6824 | |
5280 | 5284 | msgid "OLPC Mesh channel" |
5281 | 5285 | msgstr "" |
5282 | 5286 | |
5283 | #: src/libnmc-setting/nm-meta-setting-desc.c:6827 | |
5287 | #: src/libnmc-setting/nm-meta-setting-desc.c:6833 | |
5284 | 5288 | msgid "DHCP anycast MAC address [none]" |
5285 | 5289 | msgstr "" |
5286 | 5290 | |
5287 | #: src/libnmc-setting/nm-meta-setting-desc.c:7015 | |
5291 | #: src/libnmc-setting/nm-meta-setting-desc.c:7021 | |
5288 | 5292 | msgid "PPPoE parent device" |
5289 | 5293 | msgstr "" |
5290 | 5294 | |
5291 | #: src/libnmc-setting/nm-meta-setting-desc.c:7021 | |
5295 | #: src/libnmc-setting/nm-meta-setting-desc.c:7027 | |
5292 | 5296 | msgid "Service [none]" |
5293 | 5297 | msgstr "" |
5294 | 5298 | |
5295 | #: src/libnmc-setting/nm-meta-setting-desc.c:7028 | |
5299 | #: src/libnmc-setting/nm-meta-setting-desc.c:7034 | |
5296 | 5300 | msgid "PPPoE username" |
5297 | 5301 | msgstr "" |
5298 | 5302 | |
5299 | #: src/libnmc-setting/nm-meta-setting-desc.c:7064 | |
5303 | #: src/libnmc-setting/nm-meta-setting-desc.c:7070 | |
5300 | 5304 | msgid "Browser only" |
5301 | 5305 | msgstr "" |
5302 | 5306 | |
5303 | #: src/libnmc-setting/nm-meta-setting-desc.c:7070 | |
5307 | #: src/libnmc-setting/nm-meta-setting-desc.c:7076 | |
5304 | 5308 | msgid "PAC URL" |
5305 | 5309 | msgstr "" |
5306 | 5310 | |
5307 | #: src/libnmc-setting/nm-meta-setting-desc.c:7076 | |
5311 | #: src/libnmc-setting/nm-meta-setting-desc.c:7082 | |
5308 | 5312 | msgid "PAC script" |
5309 | 5313 | msgstr "" |
5310 | 5314 | |
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 | |
5313 | 5317 | msgid "Team JSON configuration [none]" |
5314 | 5318 | msgstr "" |
5315 | 5319 | |
5316 | #: src/libnmc-setting/nm-meta-setting-desc.c:7491 | |
5320 | #: src/libnmc-setting/nm-meta-setting-desc.c:7497 | |
5317 | 5321 | msgid "User ID [none]" |
5318 | 5322 | msgstr "" |
5319 | 5323 | |
5320 | #: src/libnmc-setting/nm-meta-setting-desc.c:7497 | |
5324 | #: src/libnmc-setting/nm-meta-setting-desc.c:7503 | |
5321 | 5325 | msgid "Group ID [none]" |
5322 | 5326 | msgstr "" |
5323 | 5327 | |
5324 | #: src/libnmc-setting/nm-meta-setting-desc.c:7503 | |
5328 | #: src/libnmc-setting/nm-meta-setting-desc.c:7509 | |
5325 | 5329 | msgid "Enable PI" |
5326 | 5330 | msgstr "" |
5327 | 5331 | |
5328 | #: src/libnmc-setting/nm-meta-setting-desc.c:7509 | |
5332 | #: src/libnmc-setting/nm-meta-setting-desc.c:7515 | |
5329 | 5333 | msgid "Enable VNET header" |
5330 | 5334 | msgstr "" |
5331 | 5335 | |
5332 | #: src/libnmc-setting/nm-meta-setting-desc.c:7515 | |
5336 | #: src/libnmc-setting/nm-meta-setting-desc.c:7521 | |
5333 | 5337 | msgid "Enable multi queue" |
5334 | 5338 | msgstr "" |
5335 | 5339 | |
5336 | #: src/libnmc-setting/nm-meta-setting-desc.c:7528 | |
5340 | #: src/libnmc-setting/nm-meta-setting-desc.c:7534 | |
5337 | 5341 | msgid "veth peer" |
5338 | 5342 | msgstr "" |
5339 | 5343 | |
5340 | #: src/libnmc-setting/nm-meta-setting-desc.c:7541 | |
5344 | #: src/libnmc-setting/nm-meta-setting-desc.c:7547 | |
5341 | 5345 | msgid "VLAN parent device or connection UUID" |
5342 | 5346 | msgstr "" |
5343 | 5347 | |
5344 | #: src/libnmc-setting/nm-meta-setting-desc.c:7548 | |
5348 | #: src/libnmc-setting/nm-meta-setting-desc.c:7554 | |
5345 | 5349 | msgid "VLAN ID (<0-4094>)" |
5346 | 5350 | msgstr "" |
5347 | 5351 | |
5348 | #: src/libnmc-setting/nm-meta-setting-desc.c:7554 | |
5352 | #: src/libnmc-setting/nm-meta-setting-desc.c:7560 | |
5349 | 5353 | msgid "VLAN flags (<0-7>) [none]" |
5350 | 5354 | msgstr "" |
5351 | 5355 | |
5352 | #: src/libnmc-setting/nm-meta-setting-desc.c:7569 | |
5356 | #: src/libnmc-setting/nm-meta-setting-desc.c:7575 | |
5353 | 5357 | msgid "Ingress priority maps [none]" |
5354 | 5358 | msgstr "" |
5355 | 5359 | |
5356 | #: src/libnmc-setting/nm-meta-setting-desc.c:7579 | |
5360 | #: src/libnmc-setting/nm-meta-setting-desc.c:7585 | |
5357 | 5361 | msgid "Egress priority maps [none]" |
5358 | 5362 | msgstr "" |
5359 | 5363 | |
5360 | #: src/libnmc-setting/nm-meta-setting-desc.c:7647 | |
5364 | #: src/libnmc-setting/nm-meta-setting-desc.c:7653 | |
5361 | 5365 | msgid "Table" |
5362 | 5366 | msgstr "" |
5363 | 5367 | |
5364 | #: src/libnmc-setting/nm-meta-setting-desc.c:7667 | |
5368 | #: src/libnmc-setting/nm-meta-setting-desc.c:7673 | |
5365 | 5369 | msgid "VXLAN ID" |
5366 | 5370 | msgstr "" |
5367 | 5371 | |
5368 | #: src/libnmc-setting/nm-meta-setting-desc.c:7673 | |
5372 | #: src/libnmc-setting/nm-meta-setting-desc.c:7679 | |
5369 | 5373 | msgid "Local address [none]" |
5370 | 5374 | msgstr "" |
5371 | 5375 | |
5372 | #: src/libnmc-setting/nm-meta-setting-desc.c:7685 | |
5376 | #: src/libnmc-setting/nm-meta-setting-desc.c:7691 | |
5373 | 5377 | msgid "Minimum source port" |
5374 | 5378 | msgstr "" |
5375 | 5379 | |
5376 | #: src/libnmc-setting/nm-meta-setting-desc.c:7691 | |
5380 | #: src/libnmc-setting/nm-meta-setting-desc.c:7697 | |
5377 | 5381 | msgid "Maximum source port" |
5378 | 5382 | msgstr "" |
5379 | 5383 | |
5380 | #: src/libnmc-setting/nm-meta-setting-desc.c:7697 | |
5384 | #: src/libnmc-setting/nm-meta-setting-desc.c:7703 | |
5381 | 5385 | msgid "Destination port" |
5382 | 5386 | msgstr "" |
5383 | 5387 | |
5384 | #: src/libnmc-setting/nm-meta-setting-desc.c:7737 | |
5388 | #: src/libnmc-setting/nm-meta-setting-desc.c:7743 | |
5385 | 5389 | #: src/nmtui/nmt-wireguard-peer-editor.c:78 |
5386 | 5390 | msgid "Peer" |
5387 | 5391 | msgstr "" |
5388 | 5392 | |
5389 | #: src/libnmc-setting/nm-meta-setting-desc.c:7767 | |
5393 | #: src/libnmc-setting/nm-meta-setting-desc.c:7773 | |
5390 | 5394 | msgid "WiMAX NSP name" |
5391 | 5395 | msgstr "" |
5392 | 5396 | |
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 | |
5395 | 5399 | msgid "Cloned MAC [none]" |
5396 | 5400 | msgstr "" |
5397 | 5401 | |
5398 | #: src/libnmc-setting/nm-meta-setting-desc.c:7837 | |
5402 | #: src/libnmc-setting/nm-meta-setting-desc.c:7843 | |
5399 | 5403 | msgid "" |
5400 | 5404 | "Enter a list of subchannels (comma or space separated).\n" |
5401 | 5405 | "\n" |
5402 | 5406 | "Example: 0.0.0e20 0.0.0e21 0.0.0e22\n" |
5403 | 5407 | msgstr "" |
5404 | 5408 | |
5405 | #: src/libnmc-setting/nm-meta-setting-desc.c:8165 | |
5409 | #: src/libnmc-setting/nm-meta-setting-desc.c:8171 | |
5406 | 5410 | msgid "" |
5407 | 5411 | "Enter the type of WEP keys. The accepted values are: 0 or unknown, 1 or key, " |
5408 | 5412 | "and 2 or passphrase.\n" |
5409 | 5413 | msgstr "" |
5410 | 5414 | |
5411 | #: src/libnmc-setting/nm-meta-setting-desc.c:8224 | |
5415 | #: src/libnmc-setting/nm-meta-setting-desc.c:8230 | |
5412 | 5416 | msgid "Short address (<0x0000-0xffff>)" |
5413 | 5417 | msgstr "" |
5414 | 5418 | |
5415 | #: src/libnmc-setting/nm-meta-setting-desc.c:8240 | |
5419 | #: src/libnmc-setting/nm-meta-setting-desc.c:8246 | |
5416 | 5420 | msgid "PAN Identifier (<0x0000-0xffff>)" |
5417 | 5421 | msgstr "" |
5418 | 5422 | |
5419 | #: src/libnmc-setting/nm-meta-setting-desc.c:8255 | |
5423 | #: src/libnmc-setting/nm-meta-setting-desc.c:8261 | |
5420 | 5424 | msgid "Page (<default|0-31>)" |
5421 | 5425 | msgstr "" |
5422 | 5426 | |
5423 | #: src/libnmc-setting/nm-meta-setting-desc.c:8269 | |
5427 | #: src/libnmc-setting/nm-meta-setting-desc.c:8275 | |
5424 | 5428 | msgid "Channel (<default|0-26>)" |
5425 | 5429 | msgstr "" |
5426 | 5430 | |
5427 | 5431 | #. *************************************************************************** |
5428 | #: src/libnmc-setting/nm-meta-setting-desc.c:8404 | |
5432 | #: src/libnmc-setting/nm-meta-setting-desc.c:8410 | |
5429 | 5433 | msgid "6LOWPAN settings" |
5430 | 5434 | msgstr "" |
5431 | 5435 | |
5432 | #: src/libnmc-setting/nm-meta-setting-desc.c:8405 | |
5436 | #: src/libnmc-setting/nm-meta-setting-desc.c:8411 | |
5433 | 5437 | msgid "802-1x settings" |
5434 | 5438 | msgstr "" |
5435 | 5439 | |
5436 | #: src/libnmc-setting/nm-meta-setting-desc.c:8407 | |
5440 | #: src/libnmc-setting/nm-meta-setting-desc.c:8413 | |
5437 | 5441 | msgid "bluetooth connection" |
5438 | 5442 | msgstr "" |
5439 | 5443 | |
5440 | #: src/libnmc-setting/nm-meta-setting-desc.c:8408 | |
5444 | #: src/libnmc-setting/nm-meta-setting-desc.c:8414 | |
5441 | 5445 | msgid "Bond device" |
5442 | 5446 | msgstr "" |
5443 | 5447 | |
5444 | #: src/libnmc-setting/nm-meta-setting-desc.c:8409 | |
5448 | #: src/libnmc-setting/nm-meta-setting-desc.c:8415 | |
5445 | 5449 | msgid "Bond port" |
5446 | 5450 | msgstr "" |
5447 | 5451 | |
5448 | #: src/libnmc-setting/nm-meta-setting-desc.c:8410 | |
5452 | #: src/libnmc-setting/nm-meta-setting-desc.c:8416 | |
5449 | 5453 | msgid "Bridge device" |
5450 | 5454 | msgstr "" |
5451 | 5455 | |
5452 | #: src/libnmc-setting/nm-meta-setting-desc.c:8411 | |
5456 | #: src/libnmc-setting/nm-meta-setting-desc.c:8417 | |
5453 | 5457 | msgid "Bridge port" |
5454 | 5458 | msgstr "" |
5455 | 5459 | |
5456 | #: src/libnmc-setting/nm-meta-setting-desc.c:8412 | |
5460 | #: src/libnmc-setting/nm-meta-setting-desc.c:8418 | |
5457 | 5461 | msgid "CDMA mobile broadband connection" |
5458 | 5462 | msgstr "" |
5459 | 5463 | |
5460 | #: src/libnmc-setting/nm-meta-setting-desc.c:8413 | |
5464 | #: src/libnmc-setting/nm-meta-setting-desc.c:8419 | |
5461 | 5465 | msgid "General settings" |
5462 | 5466 | msgstr "" |
5463 | 5467 | |
5464 | #: src/libnmc-setting/nm-meta-setting-desc.c:8414 | |
5468 | #: src/libnmc-setting/nm-meta-setting-desc.c:8420 | |
5465 | 5469 | msgid "DCB settings" |
5466 | 5470 | msgstr "" |
5467 | 5471 | |
5468 | #: src/libnmc-setting/nm-meta-setting-desc.c:8415 | |
5472 | #: src/libnmc-setting/nm-meta-setting-desc.c:8421 | |
5469 | 5473 | msgid "Dummy settings" |
5470 | 5474 | msgstr "" |
5471 | 5475 | |
5472 | #: src/libnmc-setting/nm-meta-setting-desc.c:8416 | |
5476 | #: src/libnmc-setting/nm-meta-setting-desc.c:8422 | |
5473 | 5477 | msgid "Ethtool settings" |
5474 | 5478 | msgstr "" |
5475 | 5479 | |
5476 | #: src/libnmc-setting/nm-meta-setting-desc.c:8417 | |
5480 | #: src/libnmc-setting/nm-meta-setting-desc.c:8423 | |
5477 | 5481 | msgid "Generic settings" |
5478 | 5482 | msgstr "" |
5479 | 5483 | |
5480 | #: src/libnmc-setting/nm-meta-setting-desc.c:8418 | |
5484 | #: src/libnmc-setting/nm-meta-setting-desc.c:8424 | |
5481 | 5485 | msgid "GSM mobile broadband connection" |
5482 | 5486 | msgstr "" |
5483 | 5487 | |
5484 | #: src/libnmc-setting/nm-meta-setting-desc.c:8419 | |
5488 | #: src/libnmc-setting/nm-meta-setting-desc.c:8425 | |
5485 | 5489 | msgid "Hostname settings" |
5486 | 5490 | msgstr "" |
5487 | 5491 | |
5488 | #: src/libnmc-setting/nm-meta-setting-desc.c:8421 | |
5492 | #: src/libnmc-setting/nm-meta-setting-desc.c:8427 | |
5489 | 5493 | msgid "IPv4 protocol" |
5490 | 5494 | msgstr "" |
5491 | 5495 | |
5492 | #: src/libnmc-setting/nm-meta-setting-desc.c:8422 | |
5496 | #: src/libnmc-setting/nm-meta-setting-desc.c:8428 | |
5493 | 5497 | msgid "IPv6 protocol" |
5494 | 5498 | msgstr "" |
5495 | 5499 | |
5496 | #: src/libnmc-setting/nm-meta-setting-desc.c:8423 | |
5500 | #: src/libnmc-setting/nm-meta-setting-desc.c:8429 | |
5497 | 5501 | msgid "IP-tunnel settings" |
5498 | 5502 | msgstr "" |
5499 | 5503 | |
5500 | #: src/libnmc-setting/nm-meta-setting-desc.c:8424 | |
5504 | #: src/libnmc-setting/nm-meta-setting-desc.c:8430 | |
5501 | 5505 | msgid "Loopback settings" |
5502 | 5506 | msgstr "" |
5503 | 5507 | |
5504 | #: src/libnmc-setting/nm-meta-setting-desc.c:8425 | |
5508 | #: src/libnmc-setting/nm-meta-setting-desc.c:8431 | |
5505 | 5509 | msgid "MACsec connection" |
5506 | 5510 | msgstr "" |
5507 | 5511 | |
5508 | #: src/libnmc-setting/nm-meta-setting-desc.c:8426 | |
5512 | #: src/libnmc-setting/nm-meta-setting-desc.c:8432 | |
5509 | 5513 | msgid "macvlan connection" |
5510 | 5514 | msgstr "" |
5511 | 5515 | |
5512 | #: src/libnmc-setting/nm-meta-setting-desc.c:8427 | |
5516 | #: src/libnmc-setting/nm-meta-setting-desc.c:8433 | |
5513 | 5517 | msgid "Match" |
5514 | 5518 | msgstr "" |
5515 | 5519 | |
5516 | #: src/libnmc-setting/nm-meta-setting-desc.c:8428 | |
5520 | #: src/libnmc-setting/nm-meta-setting-desc.c:8434 | |
5517 | 5521 | msgid "OLPC Mesh connection" |
5518 | 5522 | msgstr "" |
5519 | 5523 | |
5520 | #: src/libnmc-setting/nm-meta-setting-desc.c:8429 | |
5524 | #: src/libnmc-setting/nm-meta-setting-desc.c:8435 | |
5521 | 5525 | msgid "Open vSwitch bridge settings" |
5522 | 5526 | msgstr "" |
5523 | 5527 | |
5524 | #: src/libnmc-setting/nm-meta-setting-desc.c:8430 | |
5528 | #: src/libnmc-setting/nm-meta-setting-desc.c:8436 | |
5525 | 5529 | msgid "Open vSwitch DPDK interface settings" |
5526 | 5530 | msgstr "" |
5527 | 5531 | |
5528 | #: src/libnmc-setting/nm-meta-setting-desc.c:8431 | |
5532 | #: src/libnmc-setting/nm-meta-setting-desc.c:8437 | |
5529 | 5533 | msgid "OVS Other Config" |
5530 | 5534 | msgstr "" |
5531 | 5535 | |
5532 | #: src/libnmc-setting/nm-meta-setting-desc.c:8432 | |
5536 | #: src/libnmc-setting/nm-meta-setting-desc.c:8438 | |
5533 | 5537 | msgid "OVS External IDs" |
5534 | 5538 | msgstr "" |
5535 | 5539 | |
5536 | #: src/libnmc-setting/nm-meta-setting-desc.c:8433 | |
5540 | #: src/libnmc-setting/nm-meta-setting-desc.c:8439 | |
5537 | 5541 | msgid "Open vSwitch interface settings" |
5538 | 5542 | msgstr "" |
5539 | 5543 | |
5540 | #: src/libnmc-setting/nm-meta-setting-desc.c:8434 | |
5544 | #: src/libnmc-setting/nm-meta-setting-desc.c:8440 | |
5541 | 5545 | msgid "Open vSwitch patch interface settings" |
5542 | 5546 | msgstr "" |
5543 | 5547 | |
5544 | #: src/libnmc-setting/nm-meta-setting-desc.c:8435 | |
5548 | #: src/libnmc-setting/nm-meta-setting-desc.c:8441 | |
5545 | 5549 | msgid "Open vSwitch port settings" |
5546 | 5550 | msgstr "" |
5547 | 5551 | |
5548 | #: src/libnmc-setting/nm-meta-setting-desc.c:8436 | |
5552 | #: src/libnmc-setting/nm-meta-setting-desc.c:8442 | |
5549 | 5553 | msgid "PPP settings" |
5550 | 5554 | msgstr "" |
5551 | 5555 | |
5552 | #: src/libnmc-setting/nm-meta-setting-desc.c:8437 | |
5556 | #: src/libnmc-setting/nm-meta-setting-desc.c:8443 | |
5553 | 5557 | msgid "PPPoE" |
5554 | 5558 | msgstr "" |
5555 | 5559 | |
5556 | #: src/libnmc-setting/nm-meta-setting-desc.c:8438 | |
5560 | #: src/libnmc-setting/nm-meta-setting-desc.c:8444 | |
5557 | 5561 | msgid "Proxy" |
5558 | 5562 | msgstr "" |
5559 | 5563 | |
5560 | #: src/libnmc-setting/nm-meta-setting-desc.c:8439 | |
5564 | #: src/libnmc-setting/nm-meta-setting-desc.c:8445 | |
5561 | 5565 | msgid "Serial settings" |
5562 | 5566 | msgstr "" |
5563 | 5567 | |
5564 | #: src/libnmc-setting/nm-meta-setting-desc.c:8440 | |
5568 | #: src/libnmc-setting/nm-meta-setting-desc.c:8446 | |
5565 | 5569 | msgid "SR-IOV settings" |
5566 | 5570 | msgstr "" |
5567 | 5571 | |
5568 | #: src/libnmc-setting/nm-meta-setting-desc.c:8441 | |
5572 | #: src/libnmc-setting/nm-meta-setting-desc.c:8447 | |
5569 | 5573 | msgid "Traffic controls" |
5570 | 5574 | msgstr "" |
5571 | 5575 | |
5572 | #: src/libnmc-setting/nm-meta-setting-desc.c:8442 | |
5576 | #: src/libnmc-setting/nm-meta-setting-desc.c:8448 | |
5573 | 5577 | msgid "Team device" |
5574 | 5578 | msgstr "" |
5575 | 5579 | |
5576 | #: src/libnmc-setting/nm-meta-setting-desc.c:8443 | |
5580 | #: src/libnmc-setting/nm-meta-setting-desc.c:8449 | |
5577 | 5581 | msgid "Team port" |
5578 | 5582 | msgstr "" |
5579 | 5583 | |
5580 | #: src/libnmc-setting/nm-meta-setting-desc.c:8444 | |
5584 | #: src/libnmc-setting/nm-meta-setting-desc.c:8450 | |
5581 | 5585 | msgid "Tun device" |
5582 | 5586 | msgstr "" |
5583 | 5587 | |
5584 | #: src/libnmc-setting/nm-meta-setting-desc.c:8445 | |
5588 | #: src/libnmc-setting/nm-meta-setting-desc.c:8451 | |
5585 | 5589 | msgid "User settings" |
5586 | 5590 | msgstr "" |
5587 | 5591 | |
5588 | #: src/libnmc-setting/nm-meta-setting-desc.c:8451 | |
5592 | #: src/libnmc-setting/nm-meta-setting-desc.c:8457 | |
5589 | 5593 | msgid "Wi-Fi P2P connection" |
5590 | 5594 | msgstr "" |
5591 | 5595 | |
5592 | #: src/libnmc-setting/nm-meta-setting-desc.c:8452 | |
5596 | #: src/libnmc-setting/nm-meta-setting-desc.c:8458 | |
5593 | 5597 | msgid "WiMAX connection" |
5594 | 5598 | msgstr "" |
5595 | 5599 | |
5596 | #: src/libnmc-setting/nm-meta-setting-desc.c:8453 | |
5600 | #: src/libnmc-setting/nm-meta-setting-desc.c:8459 | |
5597 | 5601 | msgid "Wired Ethernet" |
5598 | 5602 | msgstr "" |
5599 | 5603 | |
5600 | #: src/libnmc-setting/nm-meta-setting-desc.c:8454 | |
5604 | #: src/libnmc-setting/nm-meta-setting-desc.c:8460 | |
5601 | 5605 | msgid "WireGuard VPN settings" |
5602 | 5606 | msgstr "" |
5603 | 5607 | |
5604 | #: src/libnmc-setting/nm-meta-setting-desc.c:8455 | |
5608 | #: src/libnmc-setting/nm-meta-setting-desc.c:8461 | |
5605 | 5609 | msgid "Wi-Fi connection" |
5606 | 5610 | msgstr "" |
5607 | 5611 | |
5608 | #: src/libnmc-setting/nm-meta-setting-desc.c:8456 | |
5612 | #: src/libnmc-setting/nm-meta-setting-desc.c:8462 | |
5609 | 5613 | msgid "Wi-Fi security settings" |
5610 | 5614 | msgstr "" |
5611 | 5615 | |
5612 | #: src/libnmc-setting/nm-meta-setting-desc.c:8457 | |
5616 | #: src/libnmc-setting/nm-meta-setting-desc.c:8463 | |
5613 | 5617 | msgid "WPAN settings" |
5614 | 5618 | msgstr "" |
5615 | 5619 | |
5616 | #: src/libnmc-setting/nm-meta-setting-desc.c:8870 | |
5620 | #: src/libnmc-setting/nm-meta-setting-desc.c:8876 | |
5617 | 5621 | msgid "name" |
5618 | 5622 | msgstr "" |
5619 | 5623 | |
6780 | 6784 | |
6781 | 6785 | #: src/libnmc-setting/settings-docs.h.in:156 |
6782 | 6786 | 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." | |
6786 | 6796 | msgstr "" |
6787 | 6797 | |
6788 | 6798 | #: src/libnmc-setting/settings-docs.h.in:157 |
8294 | 8304 | |
8295 | 8305 | #: src/libnmc-setting/settings-docs.h.in:380 |
8296 | 8306 | #: 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 | |
8298 | 8308 | msgid "" |
8299 | 8309 | "If non-zero, only transmit packets of the specified size or smaller, " |
8300 | 8310 | "breaking larger packets up into multiple Ethernet frames." |
8768 | 8778 | |
8769 | 8779 | #: src/libnmc-setting/settings-docs.h.in:439 |
8770 | 8780 | 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 "" | |
8771 | 8789 | "The queue ID of this bond port. The maximum value of queue ID is the number " |
8772 | 8790 | "of TX queues currently active in device." |
8773 | 8791 | msgstr "" |
8774 | 8792 | |
8775 | #: src/libnmc-setting/settings-docs.h.in:440 | |
8793 | #: src/libnmc-setting/settings-docs.h.in:441 | |
8776 | 8794 | msgid "" |
8777 | 8795 | "Whether the system hostname can be determined from DHCP on this connection. " |
8778 | 8796 | "When set to NM_TERNARY_DEFAULT (-1), the value from global configuration is " |
8780 | 8798 | "NetworkManager assumes the value to be NM_TERNARY_TRUE (1)." |
8781 | 8799 | msgstr "" |
8782 | 8800 | |
8783 | #: src/libnmc-setting/settings-docs.h.in:441 | |
8801 | #: src/libnmc-setting/settings-docs.h.in:442 | |
8784 | 8802 | msgid "" |
8785 | 8803 | "Whether the system hostname can be determined from reverse DNS lookup of " |
8786 | 8804 | "addresses on this device. When set to NM_TERNARY_DEFAULT (-1), the value " |
8789 | 8807 | "NM_TERNARY_TRUE (1)." |
8790 | 8808 | msgstr "" |
8791 | 8809 | |
8792 | #: src/libnmc-setting/settings-docs.h.in:442 | |
8810 | #: src/libnmc-setting/settings-docs.h.in:443 | |
8793 | 8811 | msgid "" |
8794 | 8812 | "If set to NM_TERNARY_TRUE (1), NetworkManager attempts to get the hostname " |
8795 | 8813 | "via DHCPv4/DHCPv6 or reverse DNS lookup on this device only when the device " |
8801 | 8819 | "NM_TERNARY_FALSE (0)." |
8802 | 8820 | msgstr "" |
8803 | 8821 | |
8804 | #: src/libnmc-setting/settings-docs.h.in:443 | |
8822 | #: src/libnmc-setting/settings-docs.h.in:444 | |
8805 | 8823 | msgid "" |
8806 | 8824 | "The relative priority of this connection to determine the system hostname. A " |
8807 | 8825 | "lower numerical value is better (higher priority). A connection with higher " |
8815 | 8833 | "hostname." |
8816 | 8834 | msgstr "" |
8817 | 8835 | |
8818 | #: src/libnmc-setting/settings-docs.h.in:445 | |
8836 | #: src/libnmc-setting/settings-docs.h.in:446 | |
8819 | 8837 | msgid "A dictionary of key/value pairs with external-ids for OVS." |
8820 | 8838 | msgstr "" |
8821 | 8839 | |
8822 | #: src/libnmc-setting/settings-docs.h.in:446 | |
8840 | #: src/libnmc-setting/settings-docs.h.in:447 | |
8823 | 8841 | msgid "" |
8824 | 8842 | "A dictionary of key/value pairs with other_config settings for OVS. See also " |
8825 | 8843 | "\"other_config\" in the \"ovs-vswitchd.conf.db\" manual for the keys that " |
8826 | 8844 | "OVS supports." |
8827 | 8845 | msgstr "" |
8828 | 8846 | |
8829 | #: src/libnmc-setting/settings-docs.h.in:447 | |
8847 | #: src/libnmc-setting/settings-docs.h.in:448 | |
8830 | 8848 | msgid "" |
8831 | 8849 | "This property specifies the peer interface name of the veth. This property " |
8832 | 8850 | "is mandatory." |
Binary diff not shown
226 | 226 | NMConnection *connection, |
227 | 227 | GError **error) |
228 | 228 | { |
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; | |
234 | 233 | |
235 | 234 | g_return_val_if_fail(ifindex_port > 0, FALSE); |
236 | 235 | |
237 | 236 | 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); | |
247 | 246 | |
248 | 247 | g_object_set(nm_connection_get_setting_connection(connection), |
249 | 248 | NM_SETTING_CONNECTION_MASTER, |
599 | 598 | static void |
600 | 599 | commit_port_options(NMDevice *bond_device, NMDevice *port, NMSettingBondPort *s_port) |
601 | 600 | { |
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 | })); | |
619 | 647 | } |
620 | 648 | |
621 | 649 | static NMTernary |
11690 | 11690 | } |
11691 | 11691 | |
11692 | 11692 | 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 | ||
11694 | 11705 | priv->needs_ip6_subnet = TRUE; |
11695 | 11706 | g_signal_emit(self, signals[IP6_SUBNET_NEEDED], 0); |
11696 | 11707 | } |
11748 | 11759 | { |
11749 | 11760 | static const char *const ip6_properties_to_save[] = { |
11750 | 11761 | "accept_ra", |
11751 | "forwarding", | |
11752 | 11762 | "disable_ipv6", |
11753 | 11763 | "hop_limit", |
11754 | 11764 | "use_tempaddr", |
12891 | 12901 | NMConnection *con_old; |
12892 | 12902 | NMConnection *con_new; |
12893 | 12903 | GHashTableIter iter; |
12904 | NMSettingsConnection *sett_conn; | |
12894 | 12905 | |
12895 | 12906 | if (priv->state < NM_DEVICE_STATE_PREPARE || priv->state > NM_DEVICE_STATE_ACTIVATED) { |
12896 | 12907 | g_set_error_literal(error, |
13062 | 13073 | |
13063 | 13074 | if (priv->state >= NM_DEVICE_STATE_ACTIVATED) |
13064 | 13075 | 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 | } | |
13065 | 13084 | |
13066 | 13085 | /* Notify dispatcher when re-applied */ |
13067 | 13086 | _LOGD(LOGD_DEVICE, "Notifying re-apply complete"); |
15648 | 15667 | _dev_sysctl_set_disable_ipv6(self, FALSE); |
15649 | 15668 | nm_device_sysctl_ip_conf_set(self, AF_INET6, "accept_ra", "0"); |
15650 | 15669 | nm_device_sysctl_ip_conf_set(self, AF_INET6, "use_tempaddr", "0"); |
15651 | nm_device_sysctl_ip_conf_set(self, AF_INET6, "forwarding", "0"); | |
15652 | 15670 | } |
15653 | 15671 | |
15654 | 15672 | static void |
225 | 225 | NMDeviceTeam *self = NM_DEVICE_TEAM(device); |
226 | 226 | NMSettingTeam *s_team = _nm_connection_ensure_setting(connection, NM_TYPE_SETTING_TEAM); |
227 | 227 | NMDeviceTeamPrivate *priv = NM_DEVICE_TEAM_GET_PRIVATE(self); |
228 | struct teamdctl *tdc = priv->tdc; | |
229 | GError *error = NULL; | |
230 | 228 | |
231 | 229 | /* 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); | |
246 | 232 | } |
247 | 233 | |
248 | 234 | g_object_set(G_OBJECT(s_team), NM_SETTING_TEAM_CONFIG, _get_config(self), NULL); |
584 | 584 | nm_device_devip_set_state(device, AF_INET, NM_DEVICE_IP_STATE_READY, l3cd); |
585 | 585 | |
586 | 586 | /* This just disables the addressing indicator. */ |
587 | method = NM_SETTING_IP4_CONFIG_METHOD_DISABLED; | |
587 | method = NM_SETTING_IP4_CONFIG_METHOD_MANUAL; | |
588 | 588 | } |
589 | 589 | } |
590 | 590 | |
642 | 642 | if (addr_family == AF_INET && priv->group_iface |
643 | 643 | && !nm_supplicant_interface_get_p2p_group_owner(priv->group_iface) |
644 | 644 | && 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; | |
646 | 646 | |
647 | 647 | /* Override the AUTO method to mean shared if we are group owner. */ |
648 | 648 | if (priv->group_iface && nm_supplicant_interface_get_p2p_group_owner(priv->group_iface)) { |
888 | 888 | */ |
889 | 889 | _append(&strbuf, |
890 | 890 | "add set netdev %s macset-tagged {" |
891 | " typeof ether saddr . vlan id; flags timeout; " | |
891 | " typeof ether saddr . vlan id; flags dynamic,timeout; " | |
892 | 892 | "}", |
893 | 893 | table_name); |
894 | 894 | _append(&strbuf, |
895 | 895 | "add set netdev %s macset-untagged {" |
896 | " typeof ether saddr; flags timeout;" | |
896 | " typeof ether saddr; flags dynamic,timeout; " | |
897 | 897 | "}", |
898 | 898 | table_name); |
899 | 899 |
390 | 390 | /*****************************************************************************/ |
391 | 391 | |
392 | 392 | static void |
393 | _lladdr_handle_changed(NML3IPv6LL *self) | |
393 | _lladdr_handle_changed(NML3IPv6LL *self, gboolean force_commit) | |
394 | 394 | { |
395 | 395 | const NML3ConfigData *l3cd; |
396 | 396 | gboolean changed = FALSE; |
419 | 419 | NM_DNS_PRIORITY_DEFAULT_NORMAL, |
420 | 420 | NM_L3_ACD_DEFEND_TYPE_ALWAYS, |
421 | 421 | 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, | |
423 | 425 | NM_L3_CONFIG_MERGE_FLAGS_NONE)) |
424 | 426 | changed = TRUE; |
425 | 427 | } else { |
433 | 435 | self->l3cfg_commit_handle, |
434 | 436 | "ipv6ll"); |
435 | 437 | |
436 | if (changed) | |
438 | if (changed || force_commit) | |
437 | 439 | nm_l3cfg_commit_on_idle_schedule(self->l3cfg, NM_L3_CFG_COMMIT_TYPE_AUTO); |
438 | 440 | |
439 | 441 | if (!self->emit_changed_idle_source) { |
514 | 516 | const NMPlatformIP6Address *pladdr; |
515 | 517 | char sbuf[INET6_ADDRSTRLEN]; |
516 | 518 | gboolean cur_addr_failed; |
519 | gboolean restarted = FALSE; | |
517 | 520 | struct in6_addr lladdr; |
518 | 521 | |
519 | 522 | pladdr = _pladdr_find_ll(self, &cur_addr_failed); |
525 | 528 | if (_set_cur_lladdr_obj(self, NM_L3_IPV6LL_STATE_DAD_IN_PROGRESS, pladdr)) { |
526 | 529 | _LOGT("changed: waiting for address %s to complete DAD", |
527 | 530 | nm_inet6_ntop(&self->cur_lladdr, sbuf)); |
528 | _lladdr_handle_changed(self); | |
531 | _lladdr_handle_changed(self, FALSE); | |
529 | 532 | } |
530 | 533 | return; |
531 | 534 | } |
532 | 535 | |
533 | 536 | if (_set_cur_lladdr_obj(self, NM_L3_IPV6LL_STATE_READY, pladdr)) { |
534 | 537 | _LOGT("changed: address %s is ready", nm_inet6_ntop(&self->cur_lladdr, sbuf)); |
535 | _lladdr_handle_changed(self); | |
538 | _lladdr_handle_changed(self, FALSE); | |
536 | 539 | } |
537 | 540 | return; |
538 | 541 | } |
542 | 545 | * Prematurely abort DAD to generate a new address below. */ |
543 | 546 | nm_assert( |
544 | 547 | 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 { | |
549 | 553 | _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; | |
550 | 559 | } |
551 | 560 | |
552 | 561 | /* reset the state here, so that we are sure that the following |
568 | 577 | if (_set_cur_lladdr_bin(self, NM_L3_IPV6LL_STATE_DAD_FAILED, NULL)) { |
569 | 578 | _LOGW("changed: no IPv6 link local address to retry after Duplicate Address Detection " |
570 | 579 | "failures (back off)"); |
571 | _lladdr_handle_changed(self); | |
580 | _lladdr_handle_changed(self, FALSE); | |
572 | 581 | } |
573 | 582 | return; |
574 | 583 | } |
575 | 584 | |
585 | commit: | |
576 | 586 | /* we give NML3Cfg 2 seconds to configure the address on the interface. We |
577 | 587 | * thus very soon expect to see this address configured (and kernel started DAD). |
578 | 588 | * If that does not happen within timeout, we assume that this address failed DAD. */ |
579 | 589 | 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) { | |
581 | 591 | _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); | |
583 | 593 | } |
584 | 594 | return; |
585 | 595 | } |
666 | 666 | } |
667 | 667 | |
668 | 668 | 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 | |
669 | 694 | link_enslave(NMPlatform *platform, int master, int slave) |
670 | 695 | { |
671 | 696 | NMFakePlatformLink *device = link_get(platform, slave); |
769 | 794 | infiniband_partition_delete(NMPlatform *platform, int parent, int p_key) |
770 | 795 | { |
771 | 796 | NMFakePlatformLink *parent_device; |
772 | gs_free char *name = NULL; | |
797 | char name[IFNAMSIZ]; | |
773 | 798 | |
774 | 799 | parent_device = link_get(platform, parent); |
775 | 800 | g_return_val_if_fail(parent_device != NULL, FALSE); |
1324 | 1349 | platform_class->link_set_address = link_set_address; |
1325 | 1350 | platform_class->link_set_mtu = link_set_mtu; |
1326 | 1351 | |
1352 | platform_class->link_change = link_change; | |
1327 | 1353 | platform_class->link_change_flags = link_change_flags; |
1328 | 1354 | |
1329 | 1355 | platform_class->link_get_driver_info = link_get_driver_info; |
111 | 111 | gboolean bond0_exists = !!nm_platform_link_get_by_ifname(NM_PLATFORM_GET, "bond0"); |
112 | 112 | int r; |
113 | 113 | const NMPlatformLnkBond nm_platform_lnk_bond_default = { |
114 | .mode = 3, | |
114 | .mode = nmtst_rand_select(3, 1), | |
115 | 115 | }; |
116 | 116 | |
117 | 117 | r = nm_platform_link_bond_add(NM_PLATFORM_GET, name, &nm_platform_lnk_bond_default, NULL); |
261 | 261 | g_assert(nm_platform_link_is_up(NM_PLATFORM_GET, ifindex)); |
262 | 262 | else |
263 | 263 | 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 | } | |
264 | 296 | |
265 | 297 | test_link_changed_signal_arg1 = FALSE; |
266 | 298 | test_link_changed_signal_arg2 = FALSE; |
3348 | 3380 | nm_auto_pop_netns NMPNetns *netns_pop = NULL; |
3349 | 3381 | NMPlatform *platforms[3]; |
3350 | 3382 | NMPNetns *netns; |
3383 | int errsv; | |
3351 | 3384 | int i; |
3385 | int r; | |
3352 | 3386 | |
3353 | 3387 | if (_test_netns_check_skip()) |
3354 | 3388 | return; |
3378 | 3412 | g_assert(nmp_netns_bind_to_path(netns, P_VAR_RUN_NETNS_BINDNAME, NULL)); |
3379 | 3413 | |
3380 | 3414 | 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 | ||
3382 | 3424 | g_assert_cmpint( |
3383 | 3425 | nmtstp_run_command("ip netns exec " P_NETNS_BINDNAME " ip link show dummy2b 1>/dev/null"), |
3384 | 3426 | ==, |
3391 | 3433 | !=, |
3392 | 3434 | 0); |
3393 | 3435 | |
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 | } | |
3395 | 3442 | } |
3396 | 3443 | |
3397 | 3444 | /*****************************************************************************/ |
2 | 2 | nm_pppd_plugin = shared_module( |
3 | 3 | 'nm-pppd-plugin', |
4 | 4 | name_prefix: '', |
5 | sources: 'nm-pppd-plugin.c', | |
5 | sources: [ | |
6 | 'nm-pppd-compat.c', | |
7 | 'nm-pppd-plugin.c', | |
8 | ], | |
6 | 9 | include_directories: [ |
7 | 10 | src_inc, |
8 | 11 | top_inc, |
10 | 13 | dependencies: [ |
11 | 14 | libnm_core_public_dep, |
12 | 15 | glib_dep, |
16 | pppd_dep, | |
13 | 17 | ], |
14 | 18 | link_with: [ |
15 | 19 | libnm_core_impl, |
427 | 427 | |
428 | 428 | if (ppp_state >= NM_PPP_STATUS_INTERN_DEAD) { |
429 | 429 | /* 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; | |
431 | 431 | } |
432 | 432 | |
433 | 433 | g_signal_emit(self, signals[STATE_CHANGED], 0, (guint) ppp_state); |
842 | 842 | const char *pppoe_service; |
843 | 843 | |
844 | 844 | 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); | |
846 | 846 | |
847 | 847 | nm_strv_ptrarray_add_string_concat(cmd, "nic-", priv->parent_iface); |
848 | 848 | |
871 | 871 | |
872 | 872 | } else if (!strcmp(protocol, NM_SETTING_ADSL_PROTOCOL_PPPOE)) { |
873 | 873 | 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); | |
875 | 875 | nm_strv_ptrarray_add_string_dup(cmd, priv->parent_iface); |
876 | 876 | } |
877 | 877 |
256 | 256 | const char *reason_msg; |
257 | 257 | |
258 | 258 | if ((guint) ppp_state != ppp_state_u) |
259 | ppp_state = NM_PPP_STATUS_UNKNOWN; | |
259 | ppp_state = NM_PPP_STATUS_INTERN_UNKNOWN; | |
260 | 260 | |
261 | 261 | switch (ppp_state) { |
262 | 262 | case NM_PPP_STATUS_DISCONNECT: |
7 | 7 | #define __NM_PPP_STATUS_H__ |
8 | 8 | |
9 | 9 | typedef enum { |
10 | NM_PPP_STATUS_UNKNOWN, | |
11 | 10 | |
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, | |
25 | 25 | |
26 | 26 | /* these states are internal and not announced by the pppd plugin. */ |
27 | NM_PPP_STATUS_INTERN_UNKNOWN = 20, | |
27 | 28 | NM_PPP_STATUS_INTERN_DEAD, |
28 | 29 | } NMPPPStatus; |
29 | 30 | |
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 | ||
30 | 37 | #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__ */ |
3 | 3 | * Copyright (C) 2008 Red Hat, Inc. |
4 | 4 | */ |
5 | 5 | |
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 | ||
12 | 10 | #include <sys/socket.h> |
13 | 11 | #include <netinet/in.h> |
14 | 12 | #include <net/if.h> |
15 | 13 | #include <arpa/inet.h> |
16 | 14 | #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" | |
24 | 19 | #include "nm-dbus-interface.h" |
25 | 20 | |
26 | #include "nm-pppd-plugin.h" | |
27 | #include "nm-ppp-status.h" | |
28 | ||
29 | 21 | int plugin_init(void); |
30 | ||
31 | char pppd_version[] = VERSION; | |
32 | 22 | |
33 | 23 | static struct { |
34 | 24 | GDBusConnection *dbus_connection; |
38 | 28 | static void |
39 | 29 | nm_phasechange(int arg) |
40 | 30 | { |
41 | NMPPPStatus ppp_status = NM_PPP_STATUS_UNKNOWN; | |
31 | NMPPPStatus ppp_status; | |
42 | 32 | char *ppp_phase; |
43 | 33 | |
44 | 34 | g_return_if_fail(G_IS_DBUS_CONNECTION(gl.dbus_connection)); |
45 | 35 | |
36 | ppp_status = arg; | |
37 | ||
46 | 38 | 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"; | |
98 | 77 | break; |
99 | 78 | |
100 | 79 | default: |
101 | ppp_phase = "unknown"; | |
80 | ppp_status = NM_PPP_STATUS_INTERN_UNKNOWN; | |
81 | ppp_phase = "unknown"; | |
102 | 82 | break; |
103 | 83 | } |
104 | 84 | |
105 | 85 | g_message("nm-ppp-plugin: status %d / phase '%s'", ppp_status, ppp_phase); |
106 | 86 | |
107 | if (ppp_status != NM_PPP_STATUS_UNKNOWN) { | |
87 | if (ppp_status != NM_PPP_STATUS_INTERN_UNKNOWN) { | |
108 | 88 | g_dbus_connection_call(gl.dbus_connection, |
109 | 89 | NM_DBUS_SERVICE, |
110 | 90 | gl.ipparam, |
124 | 104 | char new_name[IF_NAMESIZE]; |
125 | 105 | int ifindex; |
126 | 106 | |
127 | ifindex = if_nametoindex(ifname); | |
107 | ifindex = if_nametoindex(nm_pppd_compat_get_ifname()); | |
128 | 108 | |
129 | 109 | /* Make a sync call to ensure that when the call |
130 | 110 | * terminates the interface already has its final |
142 | 122 | NULL); |
143 | 123 | |
144 | 124 | /* 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); | |
148 | 131 | } |
149 | 132 | } |
150 | 133 | } |
153 | 136 | nm_phasechange_hook(void *data, int arg) |
154 | 137 | { |
155 | 138 | /* We send the nofication in exitnotify instead */ |
156 | if (arg == PHASE_DEAD) | |
139 | if (arg == NM_PPP_STATUS_DEAD) | |
157 | 140 | return; |
158 | 141 | |
159 | 142 | nm_phasechange(arg); |
162 | 145 | static void |
163 | 146 | nm_ip_up(void *data, int arg) |
164 | 147 | { |
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())); | |
169 | 153 | |
170 | 154 | g_return_if_fail(G_IS_DBUS_CONNECTION(gl.dbus_connection)); |
171 | 155 | |
172 | 156 | g_message("nm-ppp-plugin: ip-up event"); |
157 | ||
158 | nm_pppd_compat_get_ipcp_options(&opts, &peer_opts); | |
173 | 159 | |
174 | 160 | if (!opts.ouraddr) { |
175 | 161 | 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); | |
177 | 163 | return; |
178 | 164 | } |
179 | 165 | |
185 | 171 | g_variant_builder_add(&builder, |
186 | 172 | "{sv}", |
187 | 173 | NM_PPP_IP4_CONFIG_INTERFACE, |
188 | g_variant_new_string(ifname)); | |
174 | g_variant_new_string(nm_pppd_compat_get_ifname())); | |
189 | 175 | |
190 | 176 | g_variant_builder_add(&builder, |
191 | 177 | "{sv}", |
262 | 248 | NULL); |
263 | 249 | } |
264 | 250 | |
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 | ||
276 | 251 | static void |
277 | 252 | nm_ip6_up(void *data, int arg) |
278 | 253 | { |
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; | |
282 | 257 | |
283 | 258 | g_return_if_fail(G_IS_DBUS_CONNECTION(gl.dbus_connection)); |
284 | 259 | |
285 | 260 | g_message("nm-ppp-plugin: ip6-up event"); |
261 | ||
262 | nm_pppd_compat_get_ipv6cp_options(&got, &his); | |
286 | 263 | |
287 | 264 | g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); |
288 | 265 | /* Keep sending the interface name to be backwards compatible |
291 | 268 | g_variant_builder_add(&builder, |
292 | 269 | "{sv}", |
293 | 270 | 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)); | |
296 | 276 | g_variant_builder_add(&builder, |
297 | 277 | "{sv}", |
298 | 278 | NM_PPP_IP6_CONFIG_PEER_IID, |
299 | eui64_to_variant(ho->hisid)); | |
279 | g_variant_new_uint64(his.hisid)); | |
300 | 280 | |
301 | 281 | /* DNS is done via DHCPv6 or router advertisements */ |
302 | 282 | |
367 | 347 | |
368 | 348 | g_variant_get(ret, "(&s&s)", &my_username, &my_password); |
369 | 349 | |
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); | |
372 | 352 | |
373 | 353 | return 1; |
374 | 354 | } |
381 | 361 | /* We wait until this point to notify dead phase to make sure that |
382 | 362 | * the serial port has recovered already its original settings. |
383 | 363 | */ |
384 | nm_phasechange(PHASE_DEAD); | |
364 | nm_phasechange(NM_PPP_STATUS_DEAD); | |
385 | 365 | |
386 | 366 | g_message("nm-ppp-plugin: cleaning up"); |
387 | 367 | |
388 | 368 | g_clear_object(&gl.dbus_connection); |
389 | 369 | 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"); | |
411 | 370 | } |
412 | 371 | |
413 | 372 | int |
426 | 385 | return -1; |
427 | 386 | } |
428 | 387 | |
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); | |
441 | 399 | return 0; |
442 | 400 | } |
5376 | 5376 | gs_free char *physdev = NULL; |
5377 | 5377 | gs_free char *pkey_id = NULL; |
5378 | 5378 | int id; |
5379 | int fixup_id = 0; | |
5379 | 5380 | |
5380 | 5381 | physdev = svGetValueStr_cp(ifcfg, "PHYSDEV"); |
5381 | 5382 | if (!physdev) { |
5386 | 5387 | return FALSE; |
5387 | 5388 | } |
5388 | 5389 | |
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 | ||
5390 | 5398 | if (!pkey_id) { |
5391 | 5399 | g_set_error(error, |
5392 | 5400 | NM_SETTINGS_ERROR, |
5404 | 5412 | pkey_id); |
5405 | 5413 | return FALSE; |
5406 | 5414 | } |
5415 | ||
5416 | id |= fixup_id; | |
5407 | 5417 | |
5408 | 5418 | *out_p_key = id; |
5409 | 5419 | *out_parent = g_steal_pointer(&physdev); |
5575 | 5585 | gs_free char *value_to_free = NULL; |
5576 | 5586 | const char *value; |
5577 | 5587 | guint queue_id; |
5588 | gint32 prio; | |
5578 | 5589 | |
5579 | 5590 | g_return_val_if_fail(ifcfg != NULL, FALSE); |
5580 | 5591 | |
5583 | 5594 | s_port = nm_setting_bond_port_new(); |
5584 | 5595 | queue_id = |
5585 | 5596 | _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); | |
5591 | 5614 | } |
5592 | 5615 | |
5593 | 5616 | return s_port; |
826 | 826 | _KEY_TYPE("BAND", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
827 | 827 | _KEY_TYPE("BONDING_MASTER", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
828 | 828 | _KEY_TYPE("BONDING_OPTS", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
829 | _KEY_TYPE("BOND_PORT_PRIO", NMS_IFCFG_KEY_TYPE_IS_PLAIN), | |
829 | 830 | _KEY_TYPE("BOND_PORT_QUEUE_ID", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
830 | 831 | _KEY_TYPE("BOOTPROTO", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
831 | 832 | _KEY_TYPE("BRIDGE", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
1030 | 1031 | _KEY_TYPE("PHYSDEV", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
1031 | 1032 | _KEY_TYPE("PKEY", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
1032 | 1033 | _KEY_TYPE("PKEY_ID", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
1034 | _KEY_TYPE("PKEY_ID_NM", NMS_IFCFG_KEY_TYPE_IS_PLAIN), | |
1033 | 1035 | _KEY_TYPE("PMF", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
1034 | 1036 | _KEY_TYPE("PORTNAME", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
1035 | 1037 | _KEY_TYPE("POWERSAVE", NMS_IFCFG_KEY_TYPE_IS_PLAIN), |
32 | 32 | NMSIfcfgKeyTypeFlags key_flags; |
33 | 33 | } NMSIfcfgKeyTypeInfo; |
34 | 34 | |
35 | extern const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[261]; | |
35 | extern const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[263]; | |
36 | 36 | |
37 | 37 | const NMSIfcfgKeyTypeInfo *nms_ifcfg_well_known_key_find_info(const char *key, gssize *out_idx); |
38 | 38 |
1022 | 1022 | } |
1023 | 1023 | |
1024 | 1024 | 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) | |
1026 | 1029 | { |
1027 | 1030 | NMSettingInfiniband *s_infiniband; |
1028 | 1031 | const char *mac, *transport_mode, *parent; |
1051 | 1054 | p_key = nm_setting_infiniband_get_p_key(s_infiniband); |
1052 | 1055 | if (p_key != -1) { |
1053 | 1056 | svSetValueStr(ifcfg, "PKEY", "yes"); |
1057 | ||
1054 | 1058 | svSetValueInt64(ifcfg, "PKEY_ID", p_key); |
1055 | 1059 | |
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 | ||
1056 | 1072 | parent = nm_setting_infiniband_get_parent(s_infiniband); |
1057 | if (parent) | |
1058 | svSetValueStr(ifcfg, "PHYSDEV", parent); | |
1073 | svSetValueStr(ifcfg, "PHYSDEV", parent); | |
1059 | 1074 | } |
1060 | 1075 | |
1061 | 1076 | svSetValueStr(ifcfg, "TYPE", TYPE_INFINIBAND); |
1910 | 1925 | NMSettingBondPort *s_port; |
1911 | 1926 | |
1912 | 1927 | s_port = _nm_connection_get_setting(connection, NM_TYPE_SETTING_BOND_PORT); |
1913 | if (s_port) | |
1928 | if (s_port) { | |
1914 | 1929 | 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 | } | |
1915 | 1932 | } |
1916 | 1933 | |
1917 | 1934 | static gboolean |
2092 | 2109 | } |
2093 | 2110 | |
2094 | 2111 | static void |
2095 | write_connection_setting(NMSettingConnection *s_con, shvarFile *ifcfg) | |
2112 | write_connection_setting(NMSettingConnection *s_con, shvarFile *ifcfg, const char *interface_name) | |
2096 | 2113 | { |
2097 | 2114 | guint32 n, i; |
2098 | 2115 | nm_auto_free_gstring GString *str = NULL; |
2109 | 2126 | svSetValueStr(ifcfg, "NAME", nm_setting_connection_get_id(s_con)); |
2110 | 2127 | svSetValueStr(ifcfg, "UUID", nm_setting_connection_get_uuid(s_con)); |
2111 | 2128 | 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)); | |
2113 | 2132 | svSetValueBoolean(ifcfg, "ONBOOT", nm_setting_connection_get_autoconnect(s_con)); |
2114 | 2133 | |
2115 | 2134 | vint = nm_setting_connection_get_autoconnect_priority(s_con); |
3307 | 3326 | nm_auto_shvar_file_close shvarFile *route_content_svformat = NULL; |
3308 | 3327 | nm_auto_free_gstring GString *route_content = NULL; |
3309 | 3328 | nm_auto_free_gstring GString *route6_content = NULL; |
3329 | gs_free char *interface_name = NULL; | |
3310 | 3330 | |
3311 | 3331 | nm_assert(NM_IS_CONNECTION(connection)); |
3312 | 3332 | nm_assert(_nm_connection_verify(connection, NULL) == NM_SETTING_VERIFY_SUCCESS); |
3412 | 3432 | if (!write_wireless_setting(connection, ifcfg, secrets, &no_8021x, error)) |
3413 | 3433 | return FALSE; |
3414 | 3434 | } 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)) | |
3416 | 3436 | return FALSE; |
3417 | 3437 | } else if (!strcmp(type, NM_SETTING_BOND_SETTING_NAME)) { |
3418 | 3438 | if (!write_bond_setting(connection, ifcfg, &wired, error)) |
3517 | 3537 | |
3518 | 3538 | write_ip_routing_rules(connection, ifcfg, route_ignore); |
3519 | 3539 | |
3520 | write_connection_setting(s_con, ifcfg); | |
3540 | write_connection_setting(s_con, ifcfg, interface_name); | |
3521 | 3541 | |
3522 | 3542 | NM_SET_OUT(out_ifcfg, g_steal_pointer(&ifcfg)); |
3523 | 3543 | NM_SET_OUT(out_blobs, g_steal_pointer(&blobs)); |
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 |
8351 | 8351 | |
8352 | 8352 | s_bond_port = _nm_connection_new_setting(connection, NM_TYPE_SETTING_BOND_PORT); |
8353 | 8353 | 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); | |
8354 | 8355 | |
8355 | 8356 | nmtst_assert_connection_verifies(connection); |
8356 | 8357 | |
8362 | 8363 | } |
8363 | 8364 | |
8364 | 8365 | 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); | |
8367 | 8369 | gs_unref_object NMConnection *connection = NULL; |
8368 | 8370 | NMSettingInfiniband *s_infiniband; |
8369 | 8371 | char *unmanaged = NULL; |
8372 | 8374 | 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb, 0xcc, |
8373 | 8375 | 0xdd, 0xee, 0xff, 0x00, 0x11, 0x22}; |
8374 | 8376 | 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); | |
8380 | 8386 | g_assert(!unmanaged); |
8381 | 8387 | |
8382 | 8388 | s_infiniband = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_INFINIBAND); |
8388 | 8394 | transport_mode = nm_setting_infiniband_get_transport_mode(s_infiniband); |
8389 | 8395 | g_assert(transport_mode); |
8390 | 8396 | 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 | } | |
8391 | 8416 | } |
8392 | 8417 | |
8393 | 8418 | static void |
8408 | 8433 | s_infiniband = nmtst_connection_assert_setting(connection, NM_TYPE_SETTING_INFINIBAND); |
8409 | 8434 | |
8410 | 8435 | 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); | |
8413 | 8437 | |
8414 | 8438 | transport_mode = nm_setting_infiniband_get_transport_mode(s_infiniband); |
8415 | g_assert(transport_mode); | |
8416 | 8439 | g_assert_cmpstr(transport_mode, ==, "connected"); |
8417 | 8440 | } |
8418 | 8441 | |
8419 | 8442 | static void |
8420 | 8443 | test_write_infiniband(gconstpointer test_data) |
8421 | 8444 | { |
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; | |
8426 | 8450 | NMSettingConnection *s_con; |
8427 | 8451 | NMSettingInfiniband *s_infiniband; |
8428 | 8452 | NMSettingIPConfig *s_ip4; |
8432 | 8456 | NMIPAddress *addr; |
8433 | 8457 | GError *error = NULL; |
8434 | 8458 | const char *interface_name = NULL; |
8459 | int p_key; | |
8435 | 8460 | |
8436 | 8461 | connection = nm_simple_connection_new(); |
8437 | 8462 | |
8447 | 8472 | NM_SETTING_INFINIBAND_SETTING_NAME, |
8448 | 8473 | NULL); |
8449 | 8474 | |
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 | } | |
8452 | 8484 | |
8453 | 8485 | g_object_set(s_con, NM_SETTING_CONNECTION_INTERFACE_NAME, interface_name, NULL); |
8454 | 8486 | |
8455 | 8487 | s_infiniband = _nm_connection_new_setting(connection, NM_TYPE_SETTING_INFINIBAND); |
8456 | 8488 | 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) { | |
8458 | 8490 | g_object_set(s_infiniband, |
8459 | 8491 | NM_SETTING_INFINIBAND_MAC_ADDRESS, |
8460 | 8492 | mac, |
8464 | 8496 | } else { |
8465 | 8497 | g_object_set(s_infiniband, |
8466 | 8498 | NM_SETTING_INFINIBAND_P_KEY, |
8467 | 12, | |
8499 | p_key, | |
8468 | 8500 | NM_SETTING_INFINIBAND_PARENT, |
8469 | 8501 | "ib0", |
8470 | 8502 | NULL); |
8493 | 8525 | |
8494 | 8526 | nmtst_assert_connection_verifies(connection); |
8495 | 8527 | |
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); | |
8501 | 8536 | |
8502 | 8537 | 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); | |
8503 | 8542 | } |
8504 | 8543 | |
8505 | 8544 | static void |
10671 | 10710 | |
10672 | 10711 | g_test_add_func(TPATH "wifi/read/wep-no-keys", test_read_wifi_wep_no_keys); |
10673 | 10712 | 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); | |
10675 | 10716 | g_test_add_func(TPATH "ipoib/read", test_read_ipoib); |
10676 | 10717 | g_test_add_func(TPATH "vlan/read", test_read_vlan_interface); |
10677 | 10718 | g_test_add_func(TPATH "vlan/read-flags-1", test_read_vlan_flags_1); |
391 | 391 | /****************************************************************************/ |
392 | 392 | |
393 | 393 | #define NM_BOND_PORT_QUEUE_ID_DEF 0 |
394 | #define NM_BOND_PORT_PRIO_DEF 0 | |
394 | 395 | |
395 | 396 | /****************************************************************************/ |
396 | 397 |
1878 | 1878 | nm_vpn_plugin_info_supports_multiple; |
1879 | 1879 | } libnm_1_40_0; |
1880 | 1880 | |
1881 | libnm_1_40_20_bondp { | |
1882 | global: | |
1883 | nm_setting_bond_port_get_prio; | |
1884 | } libnm_1_40_0; | |
1885 | ||
1881 | 1886 | libnm_1_42_0 { |
1882 | 1887 | global: |
1883 | 1888 | nm_client_get_version_info; |
6 | 6 | from __future__ import print_function |
7 | 7 | import xml.etree.ElementTree as ET |
8 | 8 | import argparse |
9 | import re | |
9 | 10 | import sys |
10 | 11 | |
11 | 12 | C_NS = "http://www.gtk.org/introspection/c/1.0" |
59 | 60 | return string |
60 | 61 | |
61 | 62 | |
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 | ||
73 | 63 | def syms_from_ver(verfile): |
74 | 64 | c_syms = {} |
75 | 65 | for line in open(verfile).readlines(): |
77 | 67 | |
78 | 68 | if line.endswith("{"): |
79 | 69 | 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() | |
82 | 74 | if int(major) > 1 or int(minor) > 0: |
83 | 75 | if int(micro) > 0: |
84 | 76 | # Snap to next major version. Perhaps not |
96 | 88 | ): |
97 | 89 | c_syms[str_removesuffix(line, ";")] = version |
98 | 90 | |
99 | # This one is... messy. | |
91 | # These are exceptions and we cannot know the version for the symbol so we | |
92 | # hardcode it. | |
100 | 93 | c_syms["nm_ethtool_optname_is_feature"] = "1.20" |
94 | c_syms["nm_setting_bond_port_get_prio"] = "1.44" | |
101 | 95 | |
102 | 96 | return c_syms |
103 | 97 |
581 | 581 | <setting name="bond-port" |
582 | 582 | gtype="NMSettingBondPort" |
583 | 583 | > |
584 | <property name="prio" | |
585 | dbus-type="i" | |
586 | gprop-type="gint" | |
587 | /> | |
584 | 588 | <property name="queue-id" |
585 | 589 | dbus-type="u" |
586 | 590 | gprop-type="guint" |
1331 | 1331 | } |
1332 | 1332 | |
1333 | 1333 | static gboolean |
1334 | _normalize_infiniband_mtu(NMConnection *self) | |
1334 | _normalize_infiniband(NMConnection *self) | |
1335 | 1335 | { |
1336 | 1336 | 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), | |
1340 | 1346 | "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; | |
1346 | 1369 | } |
1347 | 1370 | |
1348 | 1371 | static gboolean |
1985 | 2008 | was_modified |= _normalize_invalid_slave_port_settings(connection); |
1986 | 2009 | was_modified |= _normalize_ip_config(connection, parameters); |
1987 | 2010 | was_modified |= _normalize_ethernet_link_neg(connection); |
1988 | was_modified |= _normalize_infiniband_mtu(connection); | |
2011 | was_modified |= _normalize_infiniband(connection); | |
1989 | 2012 | was_modified |= _normalize_bond_mode(connection); |
1990 | 2013 | was_modified |= _normalize_bond_options(connection); |
1991 | 2014 | was_modified |= _normalize_wireless_mac_address_randomization(connection); |
21 | 21 | |
22 | 22 | /*****************************************************************************/ |
23 | 23 | |
24 | NM_GOBJECT_PROPERTIES_DEFINE(NMSettingBondPort, PROP_QUEUE_ID, ); | |
24 | NM_GOBJECT_PROPERTIES_DEFINE(NMSettingBondPort, PROP_QUEUE_ID, PROP_PRIO, ); | |
25 | 25 | |
26 | 26 | typedef struct { |
27 | gint32 prio; | |
27 | 28 | guint32 queue_id; |
28 | 29 | } NMSettingBondPortPrivate; |
29 | 30 | |
62 | 63 | g_return_val_if_fail(NM_IS_SETTING_BOND_PORT(setting), 0); |
63 | 64 | |
64 | 65 | 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; | |
65 | 82 | } |
66 | 83 | |
67 | 84 | /*****************************************************************************/ |
147 | 164 | **/ |
148 | 165 | /* ---ifcfg-rh--- |
149 | 166 | * property: queue-id |
150 | * variable: BONDING_OPTS: queue-id= | |
167 | * variable: BOND_PORT_QUEUE_ID(+) | |
151 | 168 | * values: 0 - 65535 |
152 | 169 | * default: 0 |
153 | 170 | * description: Queue ID. |
164 | 181 | NMSettingBondPort, |
165 | 182 | _priv.queue_id); |
166 | 183 | |
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 | ||
167 | 213 | g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); |
168 | 214 | |
169 | 215 | _nm_setting_class_commit(setting_class, |
9 | 9 | #include <stdlib.h> |
10 | 10 | #include <linux/if_infiniband.h> |
11 | 11 | |
12 | #include "libnm-platform/nmp-base.h" | |
12 | 13 | #include "nm-utils.h" |
13 | 14 | #include "nm-utils-private.h" |
14 | 15 | #include "nm-setting-private.h" |
143 | 144 | return NM_SETTING_INFINIBAND_GET_PRIVATE(setting)->parent; |
144 | 145 | } |
145 | 146 | |
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 | ||
146 | 158 | /** |
147 | 159 | * nm_setting_infiniband_get_virtual_interface_name: |
148 | 160 | * @setting: the #NMSettingInfiniband |
171 | 183 | priv->virtual_iface_name_p_key = priv->p_key; |
172 | 184 | priv->virtual_iface_name_parent_length = len; |
173 | 185 | 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); | |
175 | 188 | } |
176 | 189 | |
177 | 190 | return priv->virtual_iface_name; |
180 | 193 | static gboolean |
181 | 194 | verify(NMSetting *setting, NMConnection *connection, GError **error) |
182 | 195 | { |
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); | |
185 | 198 | |
186 | 199 | if (priv->mac_address && !nm_utils_hwaddr_valid(priv->mac_address, INFINIBAND_ALEN)) { |
187 | 200 | g_set_error_literal(error, |
250 | 263 | } |
251 | 264 | } |
252 | 265 | |
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 | ||
255 | 270 | if (s_con) { |
256 | 271 | const char *interface_name = nm_setting_connection_get_interface_name(s_con); |
257 | 272 | |
286 | 301 | "%s.%s: ", |
287 | 302 | NM_SETTING_CONNECTION_SETTING_NAME, |
288 | 303 | NM_SETTING_CONNECTION_INTERFACE_NAME); |
289 | return FALSE; | |
304 | return NM_SETTING_VERIFY_NORMALIZABLE_ERROR; | |
290 | 305 | } |
291 | 306 | } |
292 | 307 | } |
293 | ||
294 | /* *** errors above here should be always fatal, below NORMALIZABLE_ERROR *** */ | |
295 | 308 | |
296 | 309 | if (priv->mtu > NM_INFINIBAND_MAX_MTU) { |
297 | 310 | /* Traditionally, MTU for "datagram" mode was limited to 2044 |
447 | 460 | /** |
448 | 461 | * NMSettingInfiniband:p-key: |
449 | 462 | * |
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. | |
454 | 474 | **/ |
455 | 475 | /* ---ifcfg-rh--- |
456 | 476 | * property: p-key |
457 | * variable: PKEY_ID (and PKEY=yes) | |
477 | * variable: PKEY_ID or PKEY_ID_NM(*) (requires PKEY=yes) | |
458 | 478 | * default: PKEY=no |
459 | 479 | * description: InfiniBand P_Key. The value can be a hex number prefixed with "0x" |
460 | 480 | * 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. | |
462 | 488 | * example: PKEY=yes PKEY_ID=2 PHYSDEV=mlx4_ib0 DEVICE=mlx4_ib0.8002 |
463 | 489 | * ---end--- |
464 | 490 | */ |
6155 | 6155 | } |
6156 | 6156 | |
6157 | 6157 | static void |
6158 | test_connection_normalize_infiniband_mtu(void) | |
6158 | test_connection_normalize_infiniband(void) | |
6159 | 6159 | { |
6160 | 6160 | gs_unref_object NMConnection *con = NULL; |
6161 | 6161 | NMSettingInfiniband *s_infini; |
6162 | NMSettingConnection *s_con; | |
6162 | 6163 | guint mtu_regular = nmtst_rand_select(2044, 2045, 65520); |
6163 | 6164 | |
6164 | con = nmtst_create_minimal_connection("test_connection_normalize_infiniband_mtu", | |
6165 | con = nmtst_create_minimal_connection("test_connection_normalize_infiniband", | |
6165 | 6166 | NULL, |
6166 | 6167 | NM_SETTING_INFINIBAND_SETTING_NAME, |
6167 | NULL); | |
6168 | &s_con); | |
6168 | 6169 | |
6169 | 6170 | s_infini = nm_connection_get_setting_infiniband(con); |
6170 | 6171 | g_object_set(s_infini, NM_SETTING_INFINIBAND_TRANSPORT_MODE, "connected", NULL); |
6212 | 6213 | NM_CONNECTION_ERROR_INVALID_PROPERTY); |
6213 | 6214 | nmtst_connection_normalize(con); |
6214 | 6215 | 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"); | |
6215 | 6267 | } |
6216 | 6268 | |
6217 | 6269 | static void |
11510 | 11562 | test_connection_normalize_slave_type_1); |
11511 | 11563 | g_test_add_func("/core/general/test_connection_normalize_slave_type_2", |
11512 | 11564 | 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); | |
11515 | 11567 | g_test_add_func("/core/general/test_connection_normalize_gateway_never_default", |
11516 | 11568 | test_connection_normalize_gateway_never_default); |
11517 | 11569 | g_test_add_func("/core/general/test_connection_normalize_may_fail", |
321 | 321 | const char ** |
322 | 322 | _nm_ip_address_get_attribute_names(const NMIPAddress *addr, gboolean sorted, guint *out_length); |
323 | 323 | |
324 | char *nm_setting_infiniband_create_virtual_interface_name(const char *parent, int p_key); | |
325 | ||
324 | 326 | #define NM_SETTING_WIRED_S390_OPTION_MAX_LEN 200u |
325 | 327 | |
326 | 328 | void _nm_setting_wired_clear_s390_options(NMSettingWired *setting); |
28 | 28 | #define NM_SETTING_BOND_PORT_SETTING_NAME "bond-port" |
29 | 29 | |
30 | 30 | #define NM_SETTING_BOND_PORT_QUEUE_ID "queue-id" |
31 | #define NM_SETTING_BOND_PORT_PRIO "prio" | |
31 | 32 | |
32 | 33 | typedef struct _NMSettingBondPortClass NMSettingBondPortClass; |
33 | 34 | |
40 | 41 | NM_AVAILABLE_IN_1_34 |
41 | 42 | guint32 nm_setting_bond_port_get_queue_id(NMSettingBondPort *setting); |
42 | 43 | |
44 | NM_AVAILABLE_IN_1_42_8 | |
45 | gint32 nm_setting_bond_port_get_prio(NMSettingBondPort *setting); | |
46 | ||
43 | 47 | G_END_DECLS |
44 | 48 | |
45 | 49 | #endif /* __NM_SETTING_BOND_PORT_H__ */ |
29 | 29 | * Evaluates to the micro version number of NetworkManager which this source |
30 | 30 | * compiled against. |
31 | 31 | */ |
32 | #define NM_MICRO_VERSION (6) | |
32 | #define NM_MICRO_VERSION (8) | |
33 | 33 | |
34 | 34 | /** |
35 | 35 | * NM_CHECK_VERSION: |
72 | 72 | #define NM_VERSION_1_40 (NM_ENCODE_VERSION(1, 40, 0)) |
73 | 73 | #define NM_VERSION_1_42 (NM_ENCODE_VERSION(1, 42, 0)) |
74 | 74 | #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)) | |
75 | 76 | |
76 | 77 | /* For releases, NM_API_VERSION is equal to NM_VERSION. |
77 | 78 | * |
72 | 72 | #define NM_VERSION_1_40 (NM_ENCODE_VERSION(1, 40, 0)) |
73 | 73 | #define NM_VERSION_1_42 (NM_ENCODE_VERSION(1, 42, 0)) |
74 | 74 | #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)) | |
75 | 76 | |
76 | 77 | /* For releases, NM_API_VERSION is equal to NM_VERSION. |
77 | 78 | * |
358 | 358 | #define NM_AVAILABLE_IN_1_42_2 G_UNAVAILABLE(1, 42.2) |
359 | 359 | #else |
360 | 360 | #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 | |
361 | 367 | #endif |
362 | 368 | |
363 | 369 | /* |
89 | 89 | TRUE; \ |
90 | 90 | }) |
91 | 91 | #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; | |
92 | 100 | |
93 | 101 | /*****************************************************************************/ |
94 | 102 |
175 | 175 | #define IFLA_PERM_ADDRESS 54 |
176 | 176 | |
177 | 177 | /*****************************************************************************/ |
178 | ||
179 | #define IFLA_BOND_SLAVE_PRIO 9 | |
178 | 180 | |
179 | 181 | #define IFLA_BOND_PEER_NOTIF_DELAY 28 |
180 | 182 | |
3346 | 3348 | |
3347 | 3349 | if (tb[IFLA_LINKINFO]) { |
3348 | 3350 | 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}, | |
3352 | 3356 | }; |
3353 | 3357 | struct nlattr *li[G_N_ELEMENTS(policy_link_info)]; |
3354 | 3358 | |
3359 | 3363 | nl_info_kind = nla_get_string(li[IFLA_INFO_KIND]); |
3360 | 3364 | |
3361 | 3365 | 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 | } | |
3362 | 3409 | } |
3363 | 3410 | |
3364 | 3411 | if (tb[IFLA_STATS64]) { |
8276 | 8323 | } |
8277 | 8324 | |
8278 | 8325 | 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) | |
8280 | 8327 | { |
8281 | 8328 | nm_auto_nlmsg struct nl_msg *nlmsg = NULL; |
8282 | 8329 | |
8351 | 8398 | |
8352 | 8399 | nmp_object_stackinit_id_link(&obj_id, ifindex); |
8353 | 8400 | 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); | |
8354 | 8446 | } |
8355 | 8447 | |
8356 | 8448 | static gboolean |
11120 | 11212 | platform_class->sysctl_set_async = sysctl_set_async; |
11121 | 11213 | platform_class->sysctl_get = sysctl_get; |
11122 | 11214 | |
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 | ||
11124 | 11219 | platform_class->link_change = link_change; |
11125 | platform_class->link_delete = link_delete; | |
11126 | 11220 | |
11127 | 11221 | platform_class->link_refresh = link_refresh; |
11128 | 11222 |
59 | 59 | G_STATIC_ASSERT(sizeof(((NMPlatformLink *) NULL)->l_address.data) == _NM_UTILS_HWADDR_LEN_MAX); |
60 | 60 | G_STATIC_ASSERT(sizeof(((NMPlatformLink *) NULL)->l_perm_address.data) == _NM_UTILS_HWADDR_LEN_MAX); |
61 | 61 | 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 | } | |
62 | 97 | |
63 | 98 | static const char * |
64 | 99 | _nmp_link_address_to_string(const NMPLinkAddress *addr, |
1405 | 1440 | } |
1406 | 1441 | |
1407 | 1442 | 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) | |
1409 | 1447 | { |
1410 | 1448 | char buf[512]; |
1411 | 1449 | const char *name = nm_platform_link_get_name(self, ifindex); |
1446 | 1484 | buf; |
1447 | 1485 | })); |
1448 | 1486 | |
1449 | return klass->link_change(self, type, ifindex, extra_data); | |
1487 | return klass->link_change_extra(self, type, ifindex, extra_data); | |
1450 | 1488 | } |
1451 | 1489 | |
1452 | 1490 | /** |
2104 | 2142 | return FALSE; |
2105 | 2143 | |
2106 | 2144 | 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); | |
2107 | 2182 | } |
2108 | 2183 | |
2109 | 2184 | /** |
5892 | 5967 | char *s; |
5893 | 5968 | gsize l; |
5894 | 5969 | char str_addrmode[30]; |
5970 | char str_port_data[200]; | |
5895 | 5971 | char str_address[_NM_UTILS_HWADDR_LEN_MAX * 3]; |
5896 | 5972 | char str_perm_address[_NM_UTILS_HWADDR_LEN_MAX * 3]; |
5897 | 5973 | char str_broadcast[_NM_UTILS_HWADDR_LEN_MAX * 3]; |
5934 | 6010 | _nmp_link_address_to_string(&link->l_address, str_address); |
5935 | 6011 | _nmp_link_address_to_string(&link->l_perm_address, str_perm_address); |
5936 | 6012 | _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)); | |
5937 | 6018 | |
5938 | 6019 | str_link_type = nm_link_type_to_string(link->type); |
5939 | 6020 | |
5956 | 6037 | "%s%s" /* l_broadcast */ |
5957 | 6038 | "%s%s" /* inet6_token */ |
5958 | 6039 | "%s%s" /* driver */ |
6040 | "%s%s" /* port_data */ | |
5959 | 6041 | " rx:%" G_GUINT64_FORMAT ",%" G_GUINT64_FORMAT " tx:%" G_GUINT64_FORMAT |
5960 | 6042 | ",%" G_GUINT64_FORMAT, |
5961 | 6043 | link->ifindex, |
5988 | 6070 | : "", |
5989 | 6071 | link->driver ? " driver " : "", |
5990 | 6072 | link->driver ?: "", |
6073 | NM_PRINT_FMT_QUOTED2(str_port_data[0] != '\0', " ", str_port_data, ""), | |
5991 | 6074 | link->rx_packets, |
5992 | 6075 | link->rx_bytes, |
5993 | 6076 | link->tx_packets, |
7820 | 7903 | obj->arptype, |
7821 | 7904 | obj->inet6_addr_gen_mode_inv, |
7822 | 7905 | obj->inet6_token, |
7906 | obj->port_kind, | |
7823 | 7907 | obj->rx_packets, |
7824 | 7908 | obj->rx_bytes, |
7825 | 7909 | obj->tx_packets, |
7838 | 7922 | nm_hash_update_mem(h, |
7839 | 7923 | obj->l_broadcast.data, |
7840 | 7924 | 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)); | |
7841 | 7939 | } |
7842 | 7940 | |
7843 | 7941 | int |
7867 | 7965 | if (a->l_broadcast.len) |
7868 | 7966 | NM_CMP_FIELD_MEMCMP_LEN(a, b, l_broadcast.data, a->l_broadcast.len); |
7869 | 7967 | 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 | } | |
7870 | 7976 | NM_CMP_FIELD(a, b, rx_packets); |
7871 | 7977 | NM_CMP_FIELD(a, b, rx_bytes); |
7872 | 7978 | NM_CMP_FIELD(a, b, tx_packets); |
7944 | 8050 | obj->use_carrier)); |
7945 | 8051 | |
7946 | 8052 | 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; | |
7947 | 8064 | } |
7948 | 8065 | |
7949 | 8066 | int |
153 | 153 | __NMPlatformObjWithIfindex_COMMON; |
154 | 154 | } _nm_alignas(NMPlatformObject); |
155 | 155 | |
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 | ||
156 | 166 | struct _NMPlatformLink { |
157 | 167 | __NMPlatformObjWithIfindex_COMMON; |
158 | 168 | char name[NMP_IFNAMSIZ]; |
202 | 212 | guint64 rx_bytes; |
203 | 213 | guint64 tx_packets; |
204 | 214 | 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; | |
205 | 221 | |
206 | 222 | /* @connected is mostly identical to (@n_ifi_flags & IFF_UP). Except for bridge/bond masters, |
207 | 223 | * where we coerce the link as disconnect if it has no slaves. */ |
989 | 1005 | * were added at the same time. */ |
990 | 1006 | NM_PLATFORM_KERNEL_SUPPORT_TYPE_FRA_IP_PROTO, |
991 | 1007 | |
1008 | NM_PLATFORM_KERNEL_SUPPORT_TYPE_IFLA_BOND_SLAVE_PRIO, | |
1009 | ||
992 | 1010 | _NM_PLATFORM_KERNEL_SUPPORT_NUM, |
993 | 1011 | } NMPlatformKernelSupportType; |
994 | 1012 | |
1085 | 1103 | guint32 mtu, |
1086 | 1104 | gconstpointer extra_data, |
1087 | 1105 | 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); | |
1091 | 1114 | gboolean (*link_delete)(NMPlatform *self, int ifindex); |
1092 | 1115 | gboolean (*link_refresh)(NMPlatform *self, int ifindex); |
1093 | 1116 | gboolean (*link_set_netns)(NMPlatform *self, int ifindex, int netns_fd); |
1589 | 1612 | gconstpointer extra_data, |
1590 | 1613 | const NMPlatformLink **out_link); |
1591 | 1614 | |
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); | |
1594 | 1619 | |
1595 | 1620 | static inline int |
1596 | 1621 | nm_platform_link_veth_add(NMPlatform *self, |
1630 | 1655 | static inline int |
1631 | 1656 | nm_platform_link_bridge_change(NMPlatform *self, int ifindex, const NMPlatformLnkBridge *props) |
1632 | 1657 | { |
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); | |
1634 | 1659 | } |
1635 | 1660 | |
1636 | 1661 | static inline int |
1637 | 1662 | nm_platform_link_bond_change(NMPlatform *self, int ifindex, const NMPlatformLnkBond *props) |
1638 | 1663 | { |
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); | |
1640 | 1665 | } |
1641 | 1666 | |
1642 | 1667 | static inline int |
1912 | 1937 | { |
1913 | 1938 | return nm_platform_link_change_flags_full(self, ifindex, value, set ? value : 0u); |
1914 | 1939 | } |
1940 | ||
1941 | gboolean nm_platform_link_change(NMPlatform *self, int ifindex, NMPlatformLinkBondPort *bond_port); | |
1915 | 1942 | |
1916 | 1943 | gboolean nm_platform_link_get_udev_property(NMPlatform *self, |
1917 | 1944 | int ifindex, |
2390 | 2417 | int nm_platform_mptcp_addr_cmp(const NMPlatformMptcpAddr *a, const NMPlatformMptcpAddr *b); |
2391 | 2418 | |
2392 | 2419 | 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); | |
2393 | 2423 | void nm_platform_ip4_route_hash_update(const NMPlatformIP4Route *obj, |
2394 | 2424 | NMPlatformIPRouteCmpType cmp_type, |
2395 | 2425 | NMHashState *h); |
5233 | 5233 | .property_alias = "queue-id", |
5234 | 5234 | .prompt = N_("Queue ID"), |
5235 | 5235 | .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, | |
5236 | 5242 | ), |
5237 | 5243 | NULL |
5238 | 5244 | }; |
152 | 152 | #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.") |
153 | 153 | #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).") |
154 | 154 | #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.") | |
156 | 156 | #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\".") |
157 | 157 | #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".") |
158 | 158 | #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.") |
435 | 435 | #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\".") |
436 | 436 | #define DESCRIBE_DOC_NM_SETTING_WPAN_PAN_ID N_("IEEE 802.15.4 Personal Area Network (PAN) identifier.") |
437 | 437 | #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.") | |
438 | 439 | #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.") |
439 | 440 | #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).") |
440 | 441 | #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).") |
152 | 152 | #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.") |
153 | 153 | #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).") |
154 | 154 | #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.") | |
156 | 156 | #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\".") |
157 | 157 | #define DESCRIBE_DOC_NM_SETTING_INFINIBAND_TRANSPORT_MODE N_("The IP-over-InfiniBand transport mode. Either \"datagram\" or \"connected\".") |
158 | 158 | #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.") |
435 | 435 | #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\".") |
436 | 436 | #define DESCRIBE_DOC_NM_SETTING_WPAN_PAN_ID N_("IEEE 802.15.4 Personal Area Network (PAN) identifier.") |
437 | 437 | #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.") | |
438 | 439 | #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.") |
439 | 440 | #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).") |
440 | 441 | #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).") |
13 | 13 | #include "libnm-core-aux-intern/nm-libnm-core-utils.h" |
14 | 14 | |
15 | 15 | /*****************************************************************************/ |
16 | ||
17 | typedef struct { | |
18 | GCancellable *cancellable; | |
19 | gboolean enabled; | |
20 | gboolean signal_received; | |
21 | } SigTermData; | |
16 | 22 | |
17 | 23 | typedef struct { |
18 | 24 | GMainLoop *main_loop; |
442 | 448 | /*****************************************************************************/ |
443 | 449 | |
444 | 450 | static gboolean |
445 | _config_one(GCancellable *sigterm_cancellable, | |
451 | _config_one(SigTermData *sigterm_data, | |
446 | 452 | NMClient *nmc, |
447 | 453 | const NMCSProviderGetConfigResult *result, |
448 | 454 | guint idx) |
462 | 468 | |
463 | 469 | g_main_context_iteration(NULL, FALSE); |
464 | 470 | |
465 | if (g_cancellable_is_cancelled(sigterm_cancellable)) | |
471 | if (g_cancellable_is_cancelled(sigterm_data->cancellable)) | |
466 | 472 | return FALSE; |
467 | 473 | |
468 | 474 | device = nm_g_object_ref(_nmc_get_device_by_hwaddr(nmc, hwaddr)); |
496 | 502 | g_clear_error(&error); |
497 | 503 | |
498 | 504 | applied_connection = nmcs_device_get_applied_connection(device, |
499 | sigterm_cancellable, | |
505 | sigterm_data->cancellable, | |
500 | 506 | &applied_version_id, |
501 | 507 | &error); |
502 | 508 | if (!applied_connection) { |
557 | 563 | maybe_no_preserved_external_ip = |
558 | 564 | (nmc_client_has_version_info_v(nmc) < NM_ENCODE_VERSION(1, 41, 6)); |
559 | 565 | |
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 | ||
560 | 570 | if (!nmcs_device_reapply(device, |
561 | sigterm_cancellable, | |
571 | NULL, | |
562 | 572 | applied_connection, |
563 | 573 | applied_version_id, |
564 | 574 | maybe_no_preserved_external_ip, |
589 | 599 | } |
590 | 600 | |
591 | 601 | 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) | |
595 | 603 | { |
596 | 604 | gboolean any_changes = FALSE; |
597 | 605 | guint i; |
598 | 606 | |
599 | 607 | 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)) | |
601 | 609 | any_changes = TRUE; |
602 | 610 | } |
603 | 611 | |
609 | 617 | static gboolean |
610 | 618 | sigterm_handler(gpointer user_data) |
611 | 619 | { |
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); | |
619 | 630 | return G_SOURCE_CONTINUE; |
620 | 631 | } |
621 | 632 | |
630 | 641 | gs_unref_object NMClient *nmc = NULL; |
631 | 642 | nm_auto_free_nmcs_provider_get_config_result NMCSProviderGetConfigResult *result = NULL; |
632 | 643 | gs_free_error GError *error = NULL; |
644 | SigTermData sigterm_data; | |
633 | 645 | |
634 | 646 | _nm_logging_enabled_init(g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_LOG"))); |
635 | 647 | |
642 | 654 | |
643 | 655 | sigterm_cancellable = g_cancellable_new(); |
644 | 656 | |
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); | |
646 | 663 | |
647 | 664 | provider = _provider_detect(sigterm_cancellable); |
648 | 665 | if (!provider) |
673 | 690 | if (!result) |
674 | 691 | goto done; |
675 | 692 | |
676 | if (_config_all(sigterm_cancellable, nmc, result)) | |
693 | if (_config_all(&sigterm_data, nmc, result)) | |
677 | 694 | _LOGI("some changes were applied for provider %s", nmcs_provider_get_name(provider)); |
678 | 695 | else |
679 | 696 | _LOGD("no changes were applied for provider %s", nmcs_provider_get_name(provider)); |
832 | 832 | NMDeviceReapplyFlags reapply_flags = NM_DEVICE_REAPPLY_FLAGS_PRESERVE_EXTERNAL_IP; |
833 | 833 | |
834 | 834 | again: |
835 | g_clear_error(&data.error); | |
836 | ||
835 | 837 | nm_device_reapply_async(device, |
836 | 838 | connection, |
837 | 839 | version_id, |
30 | 30 | * This is mainly for testing, it's not usually supposed to be configured. |
31 | 31 | * Consider this private API! */ |
32 | 32 | base = g_getenv(NMCS_ENV_VARIABLE("NM_CLOUD_SETUP_ALIYUN_HOST")); |
33 | base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_ALIYUN_HOST); | |
33 | 34 | |
34 | 35 | if (!g_atomic_pointer_compare_and_exchange(&base_cached, NULL, base)) |
35 | 36 | goto again; |
36 | 37 | } |
37 | base = nmcs_utils_uri_complete_interned(base) ?: ("" NM_ALIYUN_BASE); | |
38 | ||
38 | 39 | return base; |
39 | 40 | } |
40 | 41 |
270 | 270 | <property name="queue-id" |
271 | 271 | alias="queue-id" |
272 | 272 | 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." /> | |
273 | 276 | </setting> |
274 | 277 | <setting name="bridge" > |
275 | 278 | <property name="mac-address" |
610 | 613 | description="The IP-over-InfiniBand transport mode. Either "datagram" or "connected"." /> |
611 | 614 | <property name="p-key" |
612 | 615 | 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 "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." /> | |
616 | description="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." /> | |
614 | 617 | <property name="parent" |
615 | 618 | alias="parent" |
616 | 619 | description="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"." /> |