SYSTEMD.LINK(5)

الاسم
systemd.link - ضبط أجهزة الشبكة

موجز

link.link

الوصف

ملف نصي بسيط بنمط ini يرمّز إعدادات مطابقة أجهزة الشبكة، يُستخدم بواسطة systemd-udevd(8) وبشكل خاص الملحق المدمج net_setup_link فيه. طالع systemd.syntax(7) للحصول على وصف عام للصيغة.

لاحظ أن بعض التوزيعات قد تدمج ملفات .link في مرافق الإقلاع المبكر لديها (مثلًا، عبر تضمين نسخ من ملفات .link في initramfs). ولذا، قد يلزم اتخاذ خطوات يدوية لضمان توافق أي تغييرات محلية مع مرافق تخزين الإقلاع المبكر. ينبغي مراجعة التوثيق ذي الصلة الخاص بالتوزيعة.

تُقرأ ملفات .link من الملفات الموجودة في دليل شبكة النظام /usr/lib/systemd/network و /usr/local/lib/systemd/network [1]، ودليل شبكة وقت التشغيل المتطاير /run/systemd/network، ودليل إدارة الشبكة المحلي /etc/systemd/network. تُفرز جميع ملفات الإعدادات وتُعالج مجتمعة بترتيب أبجدي رقمي، بغض النظر عن الأدلة التي تقطن فيها. ومع ذلك، فإن الملفات ذات أسماء الملفات المتطابقة تستبدل بعضها بعضًا. يُوصى بأن يُسبق كل اسم ملف برقم أصغر من "70" (مثلًا، 10-eth0.link). وإلا، فقد تكون لملفات .link المبدئية أو تلك المُولّدة بواسطة systemd-network-generator.service(8) الأولوية على الملفات التي أعدّها المستخدم. للملفات في /etc/ الأولوية القصوى، وللملفات في /run/ الأولوية على الملفات التي تحمل الاسم نفسه في /usr/lib/. يمكن استخدام هذا لتجاوز ملف ارتباط مُزوّد من النظام بملف محلي إذا لزم الأمر. كحالة خاصة، يُعطّل ملف فارغ (بحجم 0) أو رابط رمزي بالاسم نفسه يشير إلى /dev/null ملف الإعدادات تمامًا (يُصبح "محجوبًا").

جنبًا إلى جنب مع ملف الارتباط foo.link، قد يوجد دليل "إضافة" foo.link.d/. ستُدمج جميع الملفات ذات اللاحقة ".conf" من هذا الدليل بالترتيب الأبجدي الرقمي وتُحلل بعد تحليل الملف الرئيس نفسه. هذا مفيد لتعديل أو إضافة إعدادات التكوين دون الحاجة إلى تعديل ملف التكوين الرئيس. يجب أن يحتوي كل ملف إضافة على ترويسات أقسام مناسبة.

بالإضافة إلى /etc/systemd/network، يمكن وضع أدلة "إضافة" ".d" في أدلة /usr/lib/systemd/network أو /run/systemd/network. لملفات الإضافة في /etc/ الأولوية على تلك الموجودة في /run/ والتي بدورها لها الأولوية على تلك الموجودة في /usr/lib/. لملفات الإضافة تحت أي من هذه الأدلة الأولوية على ملف الارتباط الرئيس أينما وُجد.

يحتوي ملف الارتباط على قسم [Match]، الذي يحدد ما إذا كان يمكن تطبيق ملف ارتباط معين على جهاز معين، بالإضافة إلى قسم [Link] يحدد كيفية ضبط الجهاز. يُطبّق الملف الأول (بالترتيب المعجمي) من ملفات الارتباط التي تطابق جهازًا معينًا. لاحظ أن النظام يورّد ملفًا مبدئيًا هو 99-default.link. لذا ينبغي لأي ملف .link يقدّمه المستخدم أن يحمل اسمًا أسبق معجميًا ليؤخذ بعين الاعتبار على الإطلاق.

طالع udevadm(8) لتشخيص المشكلات المتعلقة بملفات .link.

خيارات قسم [MATCH]

يُقال إن ملف الارتباط يطابق واجهة ما إذا كانت جميع المطابقات المحددة بواسطة قسم [Match] مُستوفاة. عندما لا يحتوي ملف الارتباط على إعدادات صالحة في قسم [Match]، فإن الملف سيطابق جميع الواجهات ويحذر systemd-udevd من ذلك. تلميح: لتجنب التحذير ولتوضيح أنه ستتم مطابقة جميع الواجهات، أضف ما يلي:

    OriginalName=*

يُطبّق الملف الأول (بالترتيب الأبجدي الرقمي) من ملفات الارتباط التي تطابق واجهة معينة، وتُتجاهل جميع الملفات اللاحقة، حتى لو كانت تطابق أيضًا. المفاتيح التالية مقبولة:

MACAddress=
    قائمة مفصولة بمسافات لعناوين العتاد. التنسيقات المقبولة هي:

    colon-delimited hexadecimal
        يجب أن يتكون كل حقل من بايت واحد. مثال: "12:34:56:78:90:ab" أو "AA:BB:CC:DD:EE:FF".

        أُضيف في الإصدار 250.

    ست عشري مفصول بواصلات
        يجب أن يتكون كل حقل من بايت واحد. مثال: "12-34-56-78-90-ab" أو "AA-BB-CC-DD-EE-FF".

        أُضيف في الإصدار 250.

    dot-delimited hexadecimal
        يجب أن يتكون كل حقل من بايتين. مثال: "1234.5678.90ab" أو "AABB.CCDD.EEFF".

        أُضيف في الإصدار 250.

    تنسيق عناوين IPv4
        مثلًا. "127.0.0.1" أو "192.168.0.1".

        أُضيف في الإصدار 250.

    تنسيق عناوين IPv6
        مثلًا. "2001:0db8:85a3::8a2e:0370:7334" أو "::1".

        أُضيف في الإصدار 250.

    يجب أن يكون الطول الإجمالي لكل عنوان MAC هو 4 (لنفق IPv4)، أو 6 (للإيثرنت)، أو 16 (لنفق IPv6)، أو 20 (لإنفيني باند). قد يظهر هذا الخيار أكثر من مرة، وفي هذه الحالة تدمج القوائم. إذا أُسندت سلسلة فارغة لهذا الخيار، فستُصفر قائمة عناوين الأجهزة المحددة قبل ذلك. القيمة المبدئية هي غير محدد.

    أُضيف في الإصدارة 211.

PermanentMACAddress=
    قائمة مفصولة بمسافات لعناوين العتاد الدائمة. بينما يطابق MACAddress= عنوان MAC الحالي للجهاز، فإن هذا يطابق عنوان MAC الدائم للجهاز، والذي قد يكون مختلفًا عن الحالي. استخدم التنسيق السداسي عشري المقسم بنقطتين أو وصلة أو نقطة، أو تنسيق عنوان IPv4 أو IPv6. قد يظهر هذا الخيار أكثر من مرة، وفي هذه الحالة تُدمج القوائم. إذا أُسندت سلسلة فارغة لهذا الخيار، فستُصفر قائمة عناوين العتاد المحددة قبل ذلك. القيمة المبدئية هي غير محددة.

    أُضيف في الإصدار 245.

Path=
    قائمة مفصولة بمسافات من الأنماط (globs) بأسلوب الصدفة تطابق المسار المستمر، كما هو معروض بواسطة خاصية udev المسماة ID_PATH.

    أُضيف في الإصدارة 211.

Driver=
    قائمة مفصولة بمسافات من الأنماط (globs) بأسلوب الصدفة تطابق التعريف المرتبط بالجهاز حاليًا، كما هو معروض بواسطة خاصية udev المسماة ID_NET_DRIVER لجهازه الأب، أو إذا لم تكن محددة، التعريف كما هو معروض بواسطة ethtool -i للجهاز نفسه. إذا كانت القائمة مسبوقة بـ "!"، يُعكس الاختبار.

    أُضيف في الإصدارة 211.

Type=
    قائمة مفصولة بمسافات من الأنماط (globs) بأسلوب الصدفة تطابق نوع الجهاز، كما هو معروض بواسطة networkctl list. إذا كانت القائمة مسبوقة بـ "!"، يُعكس الاختبار. بعض القيم الصالحة هي "ether" و "loopback" و "wlan" و "wwan". تُسمى الأنواع الصالحة إما من سمة "DEVTYPE" لـ udev، أو ماكروهات "ARPHRD_" في linux/if_arp.h، لذا فإن هذا ليس شاملًا.

    أُضيف في الإصدارة 211.

Kind=
    قائمة مفصولة بمسافات من الأنماط (globs) بأسلوب الصدفة تطابق نوع الجهاز، كما هو معروض بواسطة networkctl status INTERFACE أو ip -d link show INTERFACE. إذا كانت القائمة مسبوقة بـ "!"، يُعكس الاختبار. بعض القيم الصالحة هي "bond" و "bridge" و "gre" و "tun" و "veth". الأنواع الصالحة تُعطى بواسطة سمة "IFLA_INFO_KIND" لـ netlink، لذا فإن هذا ليس شاملًا.

    أُضيف في الإصدار 251.

Property=
    قائمة مفصولة بمسافات لأسماء خصائص udev مع قيمها بعد علامة التساوي ("="). إذا حُددت خصائص متعددة، تُطبق عملية AND على نتائج الاختبار. إذا كانت القائمة مسبوقة بـ "!"، يُعكس الاختبار. إذا كانت القيمة تحتوي على مساحات بيضاء، فيرجى وضع زوج المفتاح والقيمة بالكامل بين علامتي اقتباس. إذا كانت القيمة تحتوي على اقتباس، فيرجى الهروب من الاقتباس باستخدام "\".

    مثال: إذا كان ملف .link يحتوي على ما يلي:

        Property=ID_MODEL_ID=9999 "ID_VENDOR_FROM_DATABASE=vendor name" "KEY=with \"quotation\""

    ثم، يطابق ملف .link فقط عندما تملك الواجهة جميع الخصائص الثلاث أعلاه.

    أُضيف في الإصدار 243.

OriginalName=
    قائمة مفصولة بمسافات من نمط الـ glob بأسلوب الصدفة تطابق اسم الجهاز، كما هو مكشوف بواسطة خاصية udev "INTERFACE". لا يمكن استخدام هذا للمطابقة على الأسماء التي غُيّرت بالفعل من مساحة المستخدم. يُنصح بالحذر عند المطابقة على الأسماء المخصصة من النواة، حيث من المعروف أنها غير مستقرة بين عمليات إعادة التشغيل.

    أُضيف في الإصدارة 218.

Host=
    يطابق اسم المضيف أو معرف الجهاز للمضيف. انظر ConditionHost= في systemd.unit(5) للتفاصيل. عند بدئه بعلامة تعجب ("!")، تُعكس النتيجة. إذا أُسندت سلسلة نصية فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدارة 211.

Virtualization=
    يتحقق مما إذا كان النظام يُنفذ في بيئة افتراضية ويختبر اختياريًا ما إذا كان تنفيذًا محددًا. راجع ConditionVirtualization= في systemd.unit(5) للتفاصيل. عند بدئه بعلامة تعجب ("!")، تُنفى النتيجة. إذا أُسندت سلسلة فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدارة 211.

KernelCommandLine=
    يتحقق مما إذا كان خيار سطر أوامر نواة معين مضبوطًا. راجع ConditionKernelCommandLine= في systemd.unit(5) للتفاصيل. عند بدئه بعلامة تعجب ("!")، تُنفى النتيجة. إذا أُسندت سلسلة فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدارة 211.

KernelVersion=
    يتحقق مما إذا كان إصدار النواة (كما يبلغ عنه uname -r) يطابق تعبيرًا معينًا. راجع ConditionKernelVersion= في systemd.unit(5) للتفاصيل. عند بدئه بعلامة تعجب ("!")، تُنفى النتيجة. إذا أُسندت سلسلة فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدارة 237.

Version=
    يتحقق مما إذا كان إصدار البرنامج يطابق تعبيرًا معينًا. راجع ConditionVersion= في systemd.unit(5) للتفاصيل. عند بدء التعبير بعلامة تعجب ("!")، تُنفى النتيجة. إذا أُسندت سلسلة فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدار 258.

Credential=
    يتحقق مما إذا كانت بيانات الاعتماد المحددة قد مُررت إلى خدمة systemd-udevd.service. راجع بيانات اعتماد النظام والخدمة[2] للتفاصيل. عند البدء بعلامة تعجب ("!")، تُنكر النتيجة. إذا عُيّنت سلسلة فارغة، تُمسح القيمة المعينة سابقًا.

    أُضيف في الإصدار 252.

Architecture=
    يتحقق مما إذا كان النظام يعمل على معمارية محددة. راجع ConditionArchitecture= في systemd.unit(5) للتفاصيل. عند بدئه بعلامة تعجب ("!")، تُنفى النتيجة. إذا أُسندت سلسلة فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدارة 211.

Firmware=
    يتحقق مما إذا كان النظام يعمل على آلة ببرمجيات ثابتة (firmware) محددة. راجع ConditionFirmware= في systemd.unit(5) للتفاصيل. عند بدئه بعلامة تعجب ("!")، تُنفى النتيجة. إذا أُسندت سلسلة فارغة، تُمسح القيمة المسندة سابقًا.

    أُضيف في الإصدار 249.

خيارات قسم [LINK]

يقبل قسم [Link] المفاتيح التالية:

Description=
    وصف للجهاز.

    أُضيف في الإصدارة 211.

Property=
    اضبط خصائص udev المحددة. يأخذ هذا قائمة مفصولة بمسافات من أزواج المفتاح-القيمة الموصولة بعلامة يساوي ("="). مثال:

        Property=HOGE=foo BAR=baz

    يدعم هذا الخيار توسيع المحددات البسيط، طالع قسم المحددات أدناه. يمكن تحديد هذا الخيار مرات متعددة. إذا أُسندت سلسلة نصية فارغة، فستُمسح جميع الإسنادات السابقة.

    هذا الإعداد مفيد لضبط خاصية "ID_NET_MANAGED_BY=" التي تعلن عن خدمة إدارة الشبكة التي ستُدير الواجهة، والتي تحترمها systemd-networkd(8) وغيرها. استخدم

        Property=ID_NET_MANAGED_BY=io.systemd.Network

    للإعلان صراحةً أن systemd-networkd ستدير الواجهة، أو اضبط الخاصية على شيء آخر للإعلان صراحةً أنها لن تفعل ذلك. طالع systemd.network(5) للحصول على تفاصيل حول كيفية استخدام هذه الخاصية لمطابقة أسماء الواجهات.

    أُضيف في الإصدار 256.

ImportProperty=
    استورد خصائص udev المحددة من قاعدة البيانات المحفوظة. يأخذ هذا قائمة مفصولة بمسافات من أسماء الخصائص. مثال:

        ImportProperty=HOGE BAR

    يدعم هذا الخيار توسيع المحددات البسيط، طالع قسم المحددات أدناه. يمكن تحديد هذا الخيار مرات متعددة. إذا أُسندت سلسلة نصية فارغة، فستُمسح جميع الإسنادات السابقة.

    إذا ضُبطت الخاصية نفسها أيضًا في Property= أعلاه، فستُتجاوز قيمة الخاصية المستوردة بالقيمة المحددة في Property=.

    أُضيف في الإصدار 256.

UnsetProperty=
    ألغِ ضبط خصائص udev المحددة. يأخذ هذا قائمة مفصولة بمسافات من أسماء الخصائص. مثال:

        UnsetProperty=HOGE BAR

    يدعم هذا الخيار توسيع المحددات البسيط، طالع قسم المحددات أدناه. يمكن تحديد هذا الخيار مرات متعددة. إذا أُسندت سلسلة نصية فارغة، فستُمسح جميع الإسنادات السابقة.

    يُطبق هذا الإعداد بعد تطبيق ImportProperty= و Property=. ومن ثم، إذا حُددت الخاصية نفسها في ImportProperty= أو Property=، فستُتجاهل قيمة الخاصية المستوردة أو المحددة، وسيُلغى ضبط الخاصية.

    أُضيف في الإصدار 256.

Alias=
    تُضبط خاصية الواجهة ifalias على هذه القيمة.

    أُضيف في الإصدارة 211.

MACAddressPolicy=
    السياسة التي ينبغي ضبط عنوان MAC وفقها. السياسات المتاحة هي:

    persistent
        إذا كان للعتاد عنوان MAC ثابت، كما هو الحال في معظم العتاد، وإذا كانت النواة تستخدمه، فلا يُفعل شيء. خلاف ذلك، يُولّد عنوان MAC جديد مضمونٌ أن يكون هو نفسه عند كل إقلاع للجهاز المعني والعتاد المعني، ولكنه عشوائي بخلاف ذلك. تعتمد هذه الميزة على وجود خصائص ID_NET_NAME_* للارتباط. على العتاد الذي لا تكون فيه هذه الخصائص مضبوطة، سيفشل توليد عنوان MAC ثابت.

        أُضيف في الإصدارة 211.

    random
        إذا كانت النواة تستخدم عنوان MAC عشوائي، فلا يُفعل شيء. خلاف ذلك، يُولّد عنوان جديد عشوائيًا في كل مرة يظهر فيها الجهاز، عادةً عند الإقلاع. في كلتا الحالتين، سيكون للعنوان العشوائي بتّات "أحادي البث" (unicast) و"مُدار محليًا" (locally administered) مضبوطة.

        أُضيف في الإصدارة 211.

    none
        يحافظ على عنوان MAC المخصّص من النواة. أو استخدم عنوان MAC المحدد في MACAddress=.

        أُضيف في الإصدارة 227.

    إسناد سلسلة نصية فارغة يعادل الضبط على "none".

    أُضيف في الإصدارة 211.

MACAddress=
    عنوان MAC الخاص بالواجهة المراد استخدامه. لكي يسري مفعول هذا الإعداد، يجب أن يكون MACAddressPolicy= إما غير مضبوط، أو فارغًا، أو "none".

    أُضيف في الإصدارة 211.

NamePolicy=
    قائمة مرتبة ومفصولة بمسافات من السياسات التي ينبغي ضبط اسم الواجهة وفقها. يمكن تعطيل NamePolicy= عبر تحديد net.ifnames=0 في سطر أوامر النواة. قد تفشل أي من السياسات، وتُستخدم الأولى الناجحة. الاسم لا يُضبط مباشرة، بل يُصدّر إلى udev كخاصية ID_NET_NAME، التي تُستخدم مبدئيًا بواسطة قاعدة udev(7) لضبط NAME. السياسات المتاحة هي:

    kernel
        إذا ادعت النواة أن الاسم الذي ضبطته للجهاز متوقع، فلن تُنفذ أي إعادة تسمية.

        أُضيف في الإصدارة 216.

    database
        يُضبط الاسم استنادًا إلى المدخلات في قاعدة بيانات العتاد الخاصة بـ udev بالمفتاح ID_NET_NAME_FROM_DATABASE.

        أُضيف في الإصدارة 211.

    onboard
        يُضبط الاسم استنادًا إلى المعلومات المعطاة بواسطة البرنامج الثابت (firmware) للأجهزة المدمجة على اللوحة، كما هو مُصدّر بواسطة خاصية udev ID_NET_NAME_ONBOARD. طالع systemd.net-naming-scheme(7).

        أُضيف في الإصدارة 211.

    slot
        يُضبط الاسم استنادًا إلى المعلومات المعطاة بواسطة البرنامج الثابت (firmware) للأجهزة القابلة للوصل السريع (hot-plug)، كما هو مُصدّر بواسطة خاصية udev ID_NET_NAME_SLOT. طالع systemd.net-naming-scheme(7).

        أُضيف في الإصدارة 211.

    المسار
        يُضبط الاسم استنادًا إلى الموقع الفيزيائي للجهاز، كما هو مُصدّر بواسطة خاصية udev ID_NET_NAME_PATH. طالع systemd.net-naming-scheme(7).

        أُضيف في الإصدارة 211.

    mac
        يُضبط الاسم استنادًا إلى عنوان MAC الثابت للجهاز، كما هو مُصدّر بواسطة خاصية udev ID_NET_NAME_MAC. طالع systemd.net-naming-scheme(7).

        أُضيف في الإصدارة 211.

    keep
        إذا كان للجهاز اسم أعطاه فضاء المستخدم (كجزء من إنشاء الجهاز أو إعادة تسميته)، فاحتفظ به.

        أُضيف في الإصدارة 241.

    أُضيف في الإصدارة 211.

Name=
    اسم الواجهة المراد استخدامه. لهذا الخيار أولوية أقل من NamePolicy=، لذا لكي يُفعَّل هذا الإعداد، يجب أن يكون NamePolicy= غير معين، أو فارغاً، أو معطلاً، أو يجب أن تفشل جميع السياسات المكونة هناك. راجع أيضًا المثال أدناه مع "Name=dmz0".

    لاحظ أن تحديد اسم قد تستخدمه النواة لواجهة أخرى (على سبيل المثال "eth0") أمر خطير لأن تعيين الاسم الذي يقوم به udev سيتسابق مع التعيين الذي تقوم به النواة، ولا يمكن إلا لواجهة واحدة استخدام الاسم. اعتماداً على ترتيب العمليات، سيفوز إما udev أو النواة، مما يجعل التسمية غير متوقعة. من الأفضل استخدام بادئة مختلفة، على سبيل المثال "internal0"/"external0" أو "lan0"/"lan1"/"lan3".

    يجب أن يتراوح طول أسماء الواجهات بين 1 كحد أدنى و 15 حرفاً كحد أقصى، ويمكن أن تحتوي على أي حرف من أحرف ASCII بـ 7 بت، باستثناء أحرف التحكم، و":"، و"/"، و"%". على الرغم من أن "." حرف مسموح به، يوصى بتجنبه عند تسمية الواجهات حيث تستخدمه أدوات متنوعة (مثل resolvconf(1)) كحرف فاصل. أيضًا، أسماء الواجهات الرقمية بالكامل غير مسموح بها (لتجنب الغموض مع تحديد الواجهة بواسطة المؤشرات الرقمية)، وكذلك السلاسل الخاصة "."، و".."، و"all"، و"default" غير مسموح بها.

    أُضيف في الإصدارة 211.

AlternativeNamesPolicy=
    قائمة مفصولة بمسافات للسياسات التي يجب ضبط الأسماء البديلة للواجهة من خلالها. قد تفشل أي من السياسات، وتُستخدم جميع السياسات الناجحة. السياسات المتاحة هي "database"، و"onboard"، و"slot"، و"path"، و"mac". إذا كانت النواة لا تدعم الأسماء البديلة، فسيُتجاهل هذا الإعداد.

    أُضيف في الإصدار 245.

AlternativeName=
    اسم الواجهة البديل المراد استخدامه. يمكن تحديد هذا الخيار مرات متعددة. إذا عُيِّنَت سلسلة فارغة لهذا الخيار، تُعاد تهيئة القائمة، ولا يكون لأي تعيينات سابقة أي تأثير. إذا كانت النواة لا تدعم الأسماء البديلة، فسيُتجاهل هذا الإعداد.

    يمكن استخدام أسماء الواجهات البديلة لتعريف الواجهات في أدوات متنوعة. على عكس الاسم الرئيسي (كما هو مكوَّن باستخدام Name= أعلاه)، قد تكون هناك أسماء بديلة متعددة تشير إلى نفس الواجهة. يمكن أن يكون للأسماء البديلة طول أقصى يبلغ 127 حرفاً، على عكس الـ 15 حرفاً المسموح بها لاسم الواجهة الرئيسي، ولكنها بخلاف ذلك تخضع لنفس قيود التسمية.

    أُضيف في الإصدار 245.

TransmitQueues=
    يحدد عدد طوابق الإرسال للجهاز. عدد صحيح في النطاق 1...16384. عندما لا يُضبط، يُستخدم المبدئي للنواة.

    أُضيف في الإصدار 248.

ReceiveQueues=
    يحدد عدد طوابق الاستقبال للجهاز. عدد صحيح في النطاق 1...16384. عندما لا يُضبط، يُستخدم المبدئي للنواة.

    أُضيف في الإصدار 248.

TransmitQueueLength=
    يحدد طول طابور إرسال الجهاز بعدد الحزم. عدد صحيح بدون إشارة في النطاق 0...4294967294. عند عدم الضبط، سيُستخدم المبدئي الخاص بالنواة.

    أُضيف في الإصدار 248.

MTUBytes=
    وحدة الإرسال القصوى بالبايت لضبطها للجهاز. اللواحق المعتادة K و M و G مدعومة ومفهومة على أساس 1024.

    أُضيف في الإصدارة 211.

BitsPerSecond=
    السرعة لضبطها للجهاز، تُقرّب القيمة للأسفل لأقرب ميغابايت في الثانية. اللواحق المعتادة K و M و G مدعومة ومفهومة على أساس 1000.

    أُضيف في الإصدارة 211.

Duplex=
    نمط الازدواج لضبطه للجهاز. القيم المقبولة هي half و full.

    أُضيف في الإصدارة 211.

AutoNegotiation=
    يأخذ قيمة منطقية. إذا ضُبط على yes، تُمكّن المفاوضة الآلية لمعلمات الإرسال. المفاوضة الآلية هي إجراء تختار به جهازا إيثرنت متصلان معلمات إرسال مشتركة، مثل السرعة، ونمط الازدواج، والتحكم في التدفق. عند عدم الضبط، سيُستخدم المبدئي الخاص بالنواة.

    لاحظ أنه إذا مُكّنت المفاوضة الآلية، فإن إعدادات السرعة والازدواج تكون للقراءة فقط. إذا عُطّلت المفاوضة الآلية، تكون إعدادات السرعة والازدواج قابلة للكتابة إذا كان البرنامج التشغيلي يدعم أنماط ربط متعددة.

    أُضيف في الإصدار 233.

WakeOnLan=
    سياسة الاستيقاظ عبر الشبكة (Wake-on-LAN) لضبطها للجهاز. تأخذ القيمة الخاصة "off" التي تعطل الاستيقاظ عبر الشبكة، أو قائمة مفصولة بمسافات من الكلمات التالية:

    phy
        الاستيقاظ عند نشاط الطبقة الفيزيائية (PHY).

        أُضيف في الإصدارة 211.

    unicast
        الاستيقاظ عند رسائل البث الأحادي (unicast).

        أُضيف في الإصدارة 235.

    multicast
        الاستيقاظ عند تلقي رسائل البث المتعدد (multicast).

        أُضيف في الإصدارة 235.

    broadcast
        الاستيقاظ عند تلقي رسائل البث العام (broadcast).

        أُضيف في الإصدارة 235.

    arp
        الاستيقاظ عند تلقي بروتوكول حل العنوان (ARP).

        أُضيف في الإصدارة 235.

    magic
        الاستيقاظ عند تلقي حزمة سحرية (magic packet).

        أُضيف في الإصدارة 211.

    secureon
        تفعيل كلمة سر SecureOn للحزمة السحرية (MagicPacket). يُفترض تلقائياً عند تحديد WakeOnLanPassword=. إذا حُدد الخيار بدون WakeOnLanPassword=، تُقرأ كلمة السر من الاعتمادية "LINK.link.wol.password" (مثلاً، "60-foo.link.wol.password")، وإذا لم تُعثر على الاعتمادية، تُقرأ من "wol.password". طالع ImportCredential=/LoadCredential=/SetCredential= في systemd.exec(5) للتفاصيل. يجب أن تكون كلمة السر في الاعتمادية مكونة من 6 بايتات بصيغة ست عشرية، مع فصل كل بايت بنقطتين (":") مثل عنوان MAC الخاص بإيثرنت، مثلاً: "aa:bb:cc:dd:ee:ff".

        أُضيف في الإصدارة 235.

    القيمة المبدئية هي غير مضبوط، وسيُستخدم الإعداد المبدئي للجهاز. يمكن تحديد هذا الإعداد عدة مرات. إذا أُسندت سلسلة نصية فارغة، فستُمسح جميع الإسنادات السابقة.

    أُضيف في الإصدارة 211.

WakeOnLanPassword=
    يحدد كلمة سر SecureOn للحزمة السحرية (MagicPacket). يأخذ مساراً مطلقاً إلى ملف عادي أو مقبس تدفق AF_UNIX، أو كلمة السر النصية. عند تحديد مسار لملف عادي، تُقرأ كلمة السر منه. عند تحديد مقبس تدفق AF_UNIX، يُنشأ اتصال به وتُقرأ كلمة السر منه. يجب أن تكون كلمة السر مكونة من 6 بايتات بصيغة ست عشرية، مع فصل كل بايت بنقطتين (":") مثل عنوان MAC الخاص بإيثرنت، مثلاً: "aa:bb:cc:dd:ee:ff". هذا يستلزم WakeOnLan=secureon. القيمة المبدئية هي غير مضبوط، ولن تُغيّر القيمة الحالية.

    أُضيف في الإصدار 250.

Port=
    يُستخدم خيار المنفذ لاختيار منفذ الجهاز. القيم المدعومة هي:

    tp
        واجهة إيثرنت تستخدم كابل الزوج الملتوي كوسيط.

        أُضيف في الإصدارة 234.

    aui
        واجهة وحدة التوصيل (AUI). تُستخدم عادةً مع الموزعات.

        أُضيف في الإصدارة 234.

    bnc
        واجهة إيثرنت تستخدم موصلات BNC وكابل محوري.

        أُضيف في الإصدارة 234.

    mii
        واجهة إيثرنت تستخدم واجهة مستقلة عن الوسائط (MII).

        أُضيف في الإصدارة 234.

    fibre
        واجهة إيثرنت تستخدم الألياف الضوئية كوسيط.

        أُضيف في الإصدارة 234.

    أُضيف في الإصدارة 234.

Advertise=
    يضبط هذا السرعات وأنماط التشغيل مزدوجة الاتجاه التي يُعلن عنها للتفاوض الآلي. هذا يستلزم "AutoNegotiation=yes". القيم المدعومة هي:

    جدول 1. قيم الإعلان المدعومة
    الإعلان | السرعة (ميجابت/ثانية) | نمط الازدواج
    10baset-full | 10 | full
    10baset1brr-full | 10 | full
    10baset1l-full | 10 | full
    10baset1s-full | 10 | full
    10baset-half | 10 | half
    10baset1s-half | 10 | half
    10baset1s-p2mp-half | 10 | half
    100basefx-full | 100 | full
    100baset-full | 100 | full
    100baset1-full | 100 | full
    100basefx-half | 100 | half
    100baset-half | 100 | half
    1000basekx-full | 1000 | full
    1000baset-full | 1000 | full
    1000baset1-full | 1000 | full
    1000basex-full | 1000 | full
    1000baset-half | 1000 | half
    2500baset-full | 2500 | full
    2500basex-full | 2500 | full
    5000baset-full | 5000 | full
    10000baser-fec | 10000 |
    10000basecr-full | 10000 | full
    10000baseer-full | 10000 | full
    10000basekr-full | 10000 | full
    10000basekx4-full | 10000 | full
    10000baselr-full | 10000 | full
    10000baselrm-full | 10000 | full
    10000basesr-full | 10000 | full
    10000baset-full | 10000 | full
    20000basekr2-full | 20000 | full
    20000basemld2-full | 20000 | full
    25000basecr-full | 25000 | full
    25000basekr-full | 25000 | full
    25000basesr-full | 25000 | full
    40000basecr4-full | 40000 | full
    40000basekr4-full | 40000 | full
    40000baselr4-full | 40000 | full
    40000basesr4-full | 40000 | full
    50000basecr-full | 50000 | full
    50000basecr2-full | 50000 | full
    50000basedr-full | 50000 | full
    50000basekr-full | 50000 | full
    50000basekr2-full | 50000 | full
    50000baselr-er-fr-full | 50000 | full
    50000basesr-full | 50000 | full
    50000basesr2-full | 50000 | full
    56000basecr4-full | 56000 | full
    56000basekr4-full | 56000 | full
    56000baselr4-full | 56000 | full
    56000basesr4-full | 56000 | full
    100000basecr-full | 100000 | full
    100000basecr2-full | 100000 | full
    100000basecr4-full | 100000 | full
    100000basedr-full | 100000 | full
    100000basedr2-full | 100000 | full
    100000basekr-full | 100000 | full
    100000basekr2-full | 100000 | full
    100000basekr4-full | 100000 | full
    100000baselr-er-fr-full | 100000 | full
    100000baselr2-er2-fr2-full | 100000 | full
    100000baselr4-er4-full | 100000 | full
    100000basesr-full | 100000 | full
    100000basesr2-full | 100000 | full
    100000basesr4-full | 100000 | full
    200000basecr-full | 200000 | full
    200000basecr2-full | 200000 | full
    200000basecr4-full | 200000 | full
    200000basedr-2-full | 200000 | full
    200000basedr-full | 200000 | full
    200000basedr2-full | 200000 | full
    200000basedr4-full | 200000 | full
    200000basekr-full | 200000 | full
    200000basekr2-full | 200000 | full
    200000basekr4-full | 200000 | full
    200000baselr2-er2-fr2-full | 200000 | full
    200000baselr4-er4-fr4-full | 200000 | full
    200000basesr-full | 200000 | full
    200000basesr2-full | 200000 | full
    200000basesr4-full | 200000 | full
    200000basevr-full | 200000 | full
    400000basecr2-full | 400000 | full
    400000basecr4-full | 400000 | full
    400000basecr8-full | 400000 | full
    400000basedr2-2-full | 400000 | full
    400000basedr2-full | 400000 | full
    400000basedr4-full | 400000 | full
    400000basedr8-full | 400000 | full
    400000basekr2-full | 400000 | full
    400000basekr4-full | 400000 | full
    400000basekr8-full | 400000 | full
    400000baselr4-er4-fr4-full | 400000 | full
    400000baselr8-er8-fr8-full | 400000 | full
    400000basesr2-full | 400000 | full
    400000basesr4-full | 400000 | full
    400000basesr8-full | 400000 | full
    400000basevr2-full | 400000 | full
    800000basecr4-full | 800000 | full
    800000basecr8-full | 800000 | full
    800000basedr4-2-full | 800000 | full
    800000basedr4-full | 800000 | full
    800000basedr8-2-full | 800000 | full
    800000basedr8-full | 800000 | full
    800000basekr4-full | 800000 | full
    800000basekr8-full | 800000 | full
    800000basesr4-full | 800000 | full
    800000basesr8-full | 800000 | full
    800000basevr4-full | 800000 | full
    800000basevr8-full | 800000 | full
    1600000basecr8-full | 1600000 | full
    1600000basedr8-2-full | 1600000 | full
    1600000basedr8-full | 1600000 | full
    1600000basekr8-full | 1600000 | full
    asym-pause |  |
    aui |  |
    autonegotiation |  |
    backplane |  |
    bnc |  |
    fec-baser |  |
    fec-llrs |  |
    fec-none |  |
    fec-rs |  |
    fibre |  |
    mii |  |
    pause |  |
    tp |  |

    مبدئيًا، هذا الخيار غير مضبوط، أي سيُعلن عن جميع الأنماط الممكنة. قد يُحدد هذا الخيار أكثر من مرة، وفي هذه الحالة يُعلن عن جميع السرعات والأنماط المحددة. إذا أُسندت سلسلة نصية فارغة إلى هذا الخيار، تُصفّر القائمة، ولا يكون لجميع الإسنادات السابقة أي أثر.

    أُضيف في الإصدار 240.

ReceiveChecksumOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ العتاد (hardware offload) لحساب مجموع الفحص (checksumming) لحزم الشبكة الواردة. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 245.

TransmitChecksumOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ العتاد لحساب مجموع الفحص لحزم الشبكة الصادرة. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 245.

ScatterGather=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، تفعيل ميزة التفريغ حيث يبني العتاد حزمة شبكة من مخازن ذاكرة متعددة غير متجاورة. عند عدم ضبطه، سيُستخدم المبدئي للنواة. هذا يقابل الأمر ethtool -K INTERFACE tx-scatter-gather on|off.

    أُضيف في الإصدار 260.

ScatterGatherFragmentList=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، تفعيل ميزة التفريغ حيث يبني العتاد حزمة شبكة من قائمة مسلسلة من مخازن المقابس. عند عدم ضبطه، سيُستخدم المبدئي للنواة. هذا يقابل الأمر ethtool -K INTERFACE tx-scatter-gather-fraglist on|off.

    أُضيف في الإصدار 260.

TCPSegmentationOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ تجزئة TCP‏ (TSO). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 232.

TCPECNSegmentationOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُنفَّذ تفريغ تجزئة TCP حتى عند نشاط أعلام ECN (إشعار الازدحام الصريح) في تدفق TCP. عند عدم ضبطه، سيُستخدم المبدئي للنواة. هذا يقابل الأمر ethtool -K INTERFACE tx-tcp-ecn-segmentation on|off.

    أُضيف في الإصدار 260.

TCPMangleIdSegmentationOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُنفَّذ تفريغ تجزئة TCP حتى لو كان العتاد غير قادر على زيادة حقل تعريف IPv4 (ID) بشكل صحيح لكل حزمة ناتجة. عند عدم ضبطه، سيُستخدم المبدئي للنواة. هذا يقابل الأمر ethtool -K INTERFACE tx-tcp-mangleid-segmentation on|off.

    أُضيف في الإصدار 260.

TCP6SegmentationOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ تجزئة TCP6 (tx-tcp6-segmentation). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدارة 235.

GenericSegmentationOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ التجزئة العام (GSO). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 232.

PartialGenericSegmentationOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ التجزئة العام الجزئي (GSO_Partial). طالع Partial Generic Segmentation Offload[3] للمزيد من التفاصيل. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 258.

GenericReceiveOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ الاستلام العام (GRO). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 232.

GenericReceiveOffloadHardware=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ الاستلام العام (GRO) المسارع عتاديًا. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

GenericReceiveOffloadList=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ الاستلام العام (GRO) لقائمة UDP. عند عدم ضبطه، سيُستخدم المبدئي للنواة. هذا يقابل الأمر ethtool -K INTERFACE rx-gro-list on|off.

    أُضيف في الإصدار 260.

GenericReceiveOffloadUDPForwarding=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ الاستلام العام (GRO) لتجميع حزم UDP الواردة. عند عدم ضبطه، سيُستخدم المبدئي للنواة. هذا يقابل الأمر ethtool -K INTERFACE rx-udp-gro-forwarding on|off.

    أُضيف في الإصدار 260.

LargeReceiveOffload=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تفريغ الاستلام الكبير (LRO). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 232.

ReceivePacketSteeringCPUMask=
    يضبط قائمة المعالجات التي قد يوجه إليها RPS حركة المرور (توجيه حزم الاستلام - RPS). يأخذ قائمة بفهارس المعالجات أو نطاقاتها مفصولة بمسافة بيضاء أو بفواصل. بدلاً من ذلك، يأخذ القيمة الخاصة "all"، التي ستشمل جميع المعالجات المتاحة في القناع. تُحدد نطاقات المعالجات بفهرس المعالج الأدنى والأعلى مفصولين بشرطة (مثال: "2-6"). قد يُحدد هذا الخيار أكثر من مرة، وفي هذه الحالة تُدمج قائمة نطاقات المعالجات المحددة. إذا أُسندت سلسلة نصية فارغة، تُصفّر القائمة، ولن يكون لجميع الإسنادات السابقة أي أثر. مبدئيًا هو غير مضبوط وتبقى قائمة معالجات RPS دون تغيير. لتعطيل RPS بعد أن كان مفعلًا، استخدم القيمة الخاصة "disable".

    أُضيف في الإصدار 256.

IRQAffinityPolicy=
    يحدد استراتيجية توزيع IRQ لمقاطعات MSI/MSI-X لواجهة الشبكة. يأخذ إحدى القيم "spread" أو "single". عندما يُضبط على "spread"، تُوزع IRQs الطوابق عبر وحدات المعالجة المركزية باستخدام خوارزمية أقصى مسافة واعية بالطوبولوجيا تفضل وحدات المعالجة المركزية على عقد NUMA مختلفة، ثم النوى المادية المختلفة، ثم الخيوط الفائقة المختلفة. عندما يُضبط على "single"، تُثبت جميع IRQs على وحدة معالجة مركزية واحدة (وحدة المعالجة المركزية 0 مبدئيًا، أو أول وحدة معالجة مركزية في المجموعة المحددة بواسطة IRQAffinity=). عندما يكون عدد IRQs أكبر من وحدات المعالجة المركزية المتاحة، تُلف الطوابق باستخدام تعيين دائري. عندما لا يُضبط، لا يُجرى أي إدارة للتقارب. ضبط هذا على سلسلة محارف فارغة يُعطل إدارة التقارب صراحة.

    ينطبق هذا الخيار فقط على الأجهزة ذات مقاطعات MSI/MSI-X القابلة للاكتشاف عبر /sys/class/net/iface/device/msi_irqs/. تُتجاوز الأجهزة الافتراضية (veth, tap) والأجهزة القديمة INTx مع تسجيل إشعار.

    لاحظ أنه إذا كانت برامج خدمة irqbalance(1) أو برامج خدمة إدارة IRQ مماثلة قيد التشغيل، فقد تتجاوز التقارب المُهيأ. فكر في تعطيل هذه البرامج الخدمية أو تهيئتها لاستبعاد الواجهات المُدارة.

    أُضيف في الإصدار 260.

IRQAffinity=
    يُرشح مجموعة وحدات المعالجة المركزية المؤهلة لوضع IRQ. يأخذ قائمة بمؤشرات وحدات المعالجة المركزية أو نطاقات مفصولة إما بمسافات بيضاء أو فواصل (مثل "0-3", "0,2,4,6", "0-3,8-11"). يعمل هذا الخيار بالتزامن مع IRQAffinityPolicy= و IRQAffinityNUMA= لتقييد وحدات المعالجة المركزية التي تستقبل IRQs الشبكة. عندما يُحدد مع سياسة "spread"، تُؤخذ فقط وحدات المعالجة المركزية المدرجة في الاعتبار لتوزيع IRQ. عندما يُحدد مع سياسة "single"، تُثبت IRQs على أول وحدة معالجة مركزية في المجموعة المسموح بها بدلاً من وحدة المعالجة المركزية 0. ليس له تأثير إذا لم يُضبط IRQAffinityPolicy=.

    أُضيف في الإصدار 260.

IRQAffinityNUMA=
    يُرشح وحدات المعالجة المركزية لتلك التابعة لعقدة NUMA المحددة. يأخذ إما "local" أو رقم عقدة NUMA صريح (0, 1, 2, ...). عندما يُضبط على "local"، تُستخدم عقدة NUMA المحلية لفتحة PCIe لبطاقة NIC (المحددة من /sys/class/net/iface/device/numa_node). إذا تعذر تحديد عقدة NUMA للجهاز (مثل نظام غير NUMA)، يُسجل تحذير وتُتجاوز تهيئة تقارب IRQ.

    عندما يُحدد كل من IRQAffinity= و IRQAffinityNUMA=، يُستخدم تقاطعهما. إذا نتج عن التقاطع مجموعة فارغة، يُسجل خطأ ولا يُطبق أي تقارب. ليس له تأثير إذا لم يُضبط IRQAffinityPolicy=.

    أُضيف في الإصدار 260.

ReceiveVLANCTAGHardwareAcceleration=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تسريع عتاد VLAN CTAG للاستلام. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

TransmitVLANCTAGHardwareAcceleration=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تسريع عتاد VLAN CTAG للإرسال. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

ReceiveVLANCTAGFilter=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل ترشيح الاستلام على VLAN CTAGs. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

TransmitVLANSTAGHardwareAcceleration=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، يُفعَّل تسريع عتاد VLAN STAG للإرسال. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

NTupleFilter=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، تُفعَّل مرشحات وإجراءات N-tuple للاستلام. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

ReceiveFCS=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، مُرِّر قيمة تسلسل فحص الإطار (FCS) أعلى المكدس دون تقليمها، واسمح لمساحة المستخدم بحساب معدل الخطأ أو صحة الوصلة. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 258.

ReceiveAll=
    يأخذ قيمة منطقية. إذا ضُبط إلى true، اسمح للواجهة أيضًا باستلام إطارات إيثرنت التالفة. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 258.

RxChannels=, TxChannels=, OtherChannels=, CombinedChannels=
    يحدد عدد قنوات الاستلام، أو الإرسال، أو القنوات الأخرى، أو المدمجة، على التوالي. يأخذ عددًا صحيحًا غير سالب في النطاق 1...4294967295 أو "max". إذا ضُبط إلى "max"، سيُستخدم الحد الأقصى المعلن عنه للعتاد. عند عدم ضبطه، لن يتغير الرقم. مبدئيًا هو غير مضبوط.

    أُضيف في الإصدار 239.

RxBufferSize=, RxMiniBufferSize=, RxJumboBufferSize=, TxBufferSize=
    يحدد الحد الأقصى لعدد الحزم المعلقة في مخزن استلام بطاقة واجهة الشبكة (NIC)، أو مخزن الاستلام المصغر، أو مخزن استلام الجامبو، أو مخزن الإرسال، على التوالي. يأخذ عددًا صحيحًا غير سالب في النطاق 1...4294967295 أو "max". إذا ضُبط إلى "max"، سيُستخدم الحد الأقصى المعلن عنه للعتاد. عند عدم ضبطه، لن يتغير الرقم. مبدئيًا هو غير مضبوط.

    أُضيف في الإصدارة 244.

RxFlowControl=
    يأخذ قيمة منطقية. عند ضبطه، يُفعَّل التحكم في تدفق الاستلام، والمعروف أيضًا برسالة الإيقاف المؤقت (PAUSE) لاستلام إيثرنت (توليد وإرسال إطارات إيقاف إيثرنت المؤقت). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 246.

TxFlowControl=
    يأخذ قيمة منطقية. عند ضبطه، يُفعَّل التحكم في تدفق الإرسال، والمعروف أيضًا برسالة الإيقاف المؤقت (PAUSE) لإرسال إيثرنت (الاستجابة لإطارات إيقاف إيثرنت المؤقت المستلمة). عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 246.

AutoNegotiationFlowControl=
    يأخذ قيمة منطقية. عند ضبطه، تُمكِّن المفاوضة الآلية الواجهة من تبادل إعلانات الحالة مع المتراسل المتصل بحيث يمكن للجهازين الاتفاق على ضبط إيقاف إيثرنت المؤقت. عند عدم ضبطه، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 246.

GenericSegmentOffloadMaxBytes=
    يحدد الحد الأقصى لحجم حزمة تفريغ التجزئة العام (GSO) التي ينبغي للجهاز قبولها. اللواحق المعتادة K، M، G مدعومة ومفهومة على أساس 1024. عدد صحيح غير سالب في النطاق 1...65536. مبدئيًا هو غير مضبوط.

    أُضيف في الإصدار 248.

GenericSegmentOffloadMaxSegments=
    يحدد الحد الأقصى لعدد أجزاء تفريغ التجزئة العام (GSO) التي ينبغي للجهاز قبولها. عدد صحيح غير سالب في النطاق 1...65535. مبدئيًا هو غير مضبوط.

    أُضيف في الإصدار 248.

UseAdaptiveRxCoalesce=, UseAdaptiveTxCoalesce=
    خصائص منطقية، عند ضبطها، تُفعِّل/تُعطِّل دمج Rx/Tx التكيفي إذا كان العتاد يدعمه. عند عدم ضبطها، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

RxCoalesceSec=, RxCoalesceIrqSec=, RxCoalesceLowSec=, RxCoalesceHighSec=, TxCoalesceSec=, TxCoalesceIrqSec=, TxCoalesceLowSec=, TxCoalesceHighSec=
    تضبط هذه الخصائص التأخير قبل توليد مقاطعات Rx/Tx بعد إرسال/استلام حزمة. تدخل خصائص "Irq" حيز التنفيذ عند خدمة المضيف لطلب مقاطعة (IRQ). تدخل خصائص "Low" و "High" حيز التنفيذ عندما ينخفض معدل الحزم عن عتبة معدل الحزم المنخفض أو يتجاوز عتبة معدل الحزم المرتفع على التوالي، إذا كان دمج Rx/Tx التكيفي مفعلًا. عند عدم ضبطها، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

RxMaxCoalescedFrames=, RxMaxCoalescedIrqFrames=, RxMaxCoalescedLowFrames=, RxMaxCoalescedHighFrames=, TxMaxCoalescedFrames=, TxMaxCoalescedIrqFrames=, TxMaxCoalescedLowFrames=, TxMaxCoalescedHighFrames=
    تضبط هذه الخصائص الحد الأقصى لعدد الإطارات التي تُرسل/تُستلم قبل توليد مقاطعة Rx/Tx. تدخل خصائص "Irq" حيز التنفيذ عند خدمة المضيف لطلب مقاطعة (IRQ). تدخل خصائص "Low" و "High" حيز التنفيذ عندما ينخفض معدل الحزم عن عتبة معدل الحزم المنخفض أو يتجاوز عتبة معدل الحزم المرتفع على التوالي، إذا كان دمج Rx/Tx التكيفي مفعلًا. عند عدم ضبطها، سيُستخدم المبدئي للنواة.

    أُضيف في الإصدار 250.

CoalescePacketRateLow=, CoalescePacketRateHigh=
    تضبط هذه الخصائص حد معدل الحزم المنخفض والمرتفع (المعبر عنه بحزم في الثانية) على التوالي، وتُستخدم لتحديد متى تُفعَّل إعدادات تجميع الحزم المقابلة لمعدلات الحزم المنخفضة والمرتفعة إذا كان تجميع Rx/Tx التكيفي مُمكَّناً. إذا لم تُضبط، ستُستخدم القيم المبدئية للنواة.

    أُضيف في الإصدار 250.

CoalescePacketRateSampleIntervalSec=
    يضبط تكرار أخذ عينات لمعدل الحزم المُستخدم لتجميع Rx/Tx التكيفي. لا يمكن أن تكون هذه الخاصية صفراً. أدنى دقة زمنية تدعمها هذه الخاصية هي الثواني. ستُقرَّب أجزاء الثانية للأعلى قبل تمريرها إلى النواة. إذا لم تُضبط، ستُستخدم القيمة المبدئية للنواة.

    أُضيف في الإصدار 250.

StatisticsBlockCoalesceSec=
    مدة تأخير تحديثات كتلة الإحصائيات الموجودة في ذاكرة البرنامج الملحق (driver). إذا لم يكن للبرنامج الملحق كتلة إحصائيات في الذاكرة، تُتجاهل هذه الخاصية. لا يمكن أن تكون هذه الخاصية صفراً. إذا لم تُضبط، ستُستخدم القيمة المبدئية للنواة.

    أُضيف في الإصدار 250.

MDI=
    يحدد نمط الواجهة المعتمدة على الوسيط (MDI) للواجهة. تصف MDI الواجهة من تنفيذ الطبقة الفيزيائية إلى الوسيط الفيزيائي المُستخدم لنقل الإرسال. تأخذ إحدى الكلمات التالية: "straight" (أو ما يعادلها: "mdi")، و"crossover" (أو ما يعادلها: "mdi-x"، "mdix")، و"auto". عند اختيار "straight"، سيُستخدم نمط MDI المباشر. عند اختيار "crossover"، سيُستخدم نمط MDI المتقاطع (MDI-X). عند اختيار "auto"، تُكتشف حالة MDI آلياً. المبدئي هو عدم الضبط، وستُستخدم القيمة المبدئية للنواة.

    أُضيف في الإصدار 251.

SR-IOVVirtualFunctions=
    يحدد عدد الوظائف الافتراضية لـ SR-IOV. يأخذ عدداً صحيحاً في النطاق 0...2147483647. المبدئي هو عدم الضبط، ويُحدد آلياً من القيم المحددة في إعدادات VirtualFunction= في أقسام [SR-IOV].

    أُضيف في الإصدار 251.

خيارات قسم [SR-IOV]

يوفر SR-IOV القدرة على تقسيم مورد PCI فيزيائي واحد إلى وظائف PCI افتراضية يمكن، على سبيل المثال، حقنها في آلة افتراضية (VM). في حالة وظائف الشبكة الافتراضية (VFs)، يقلل SR-IOV من زمن التأخير واستهلاك المعالج لحركة مرور الشبكة من نوع (north-south) (أي حركة المرور ذات النهايات الطرفية خارج الجهاز المضيف)، وذلك بالسماح لحركة المرور بتجاوز مكدس شبكة الجهاز المضيف.

وجود قسم [SR-IOV] في ملف .link سيؤدي إلى إنشاء وضبط الوظيفة الافتراضية المحددة. داخل ملف .network، ستُضبط الوظيفة الافتراضية المحددة، ولكن يجب أن تكون موجودة بالفعل. حدد عدة أقسام [SR-IOV] لضبط عدة SR-IOVs.

يقبل قسم [SR-IOV] المفاتيح التالية.

VirtualFunction=
    يحدد وظيفة افتراضية (VF)، وهي وظيفة PCIe خفيفة الوزن مصممة خصيصاً لنقل البيانات للداخل والخارج. يأخذ عدداً صحيحاً في النطاق من 0 إلى 2147483646. هذا الخيار إلزامي.

    أُضيف في الإصدار 251.

VLANId=
    يحدد معرف VLAN للوظيفة الافتراضية. يأخذ عدداً صحيحاً في النطاق من 1 إلى 4095.

    أُضيف في الإصدار 251.

QualityOfService=
    يحدد جودة الخدمة (QoS) للوظيفة الافتراضية. يأخذ عدداً صحيحاً في النطاق من 1 إلى 4294967294.

    أُضيف في الإصدار 251.

VLANProtocol=
    يحدد بروتوكول VLAN للوظيفة الافتراضية. يأخذ "802.1Q" أو "802.1ad".

    أُضيف في الإصدار 251.

MACSpoofCheck=
    يأخذ قيمة بولية. يتحكم في فحص انتحال عنوان MAC. عند عدم الضبط، سَتُسْتَخْدَمُ القيمة المبدئية للنواة.

    أُضيف في الإصدار 251.

QueryReceiveSideScaling=
    يأخذ قيمة بولية. يبدل القدرة على الاستعلام عن ضبط تدريج جانب الاستلام (RSS) للوظيفة الافتراضية (VF). قد تعتبر معلومات RSS لـ VF مثل مفتاح تجزئة RSS حساسة في بعض الأجهزة حيث تُشارَك هذه المعلومات بين VF والوظيفة المادية (PF). عند عدم الضبط، سَتُستخدَم القيمة المبدئية للنواة.

    أُضيف في الإصدار 251.

Trust=
    يأخذ قيمة بولية. يُضبَط وضع الثقة للوظيفة الافتراضية (VF). عند الضبط، يمكن لمستخدمي VF ضبط ميزة معينة قد تؤثر على الأمن و/أو الأداء. عند عدم الضبط، سَتُستخدَم القيمة المبدئية للنواة.

    أُضيف في الإصدار 251.

LinkState=
    يُسمح بتعيين حالة الارتباط للوظيفة الافتراضية (VF). يقبل قيمة منطقية أو القيمة الخاصة "auto". الضبط على "auto" يعني عكس حالة ارتباط الوظيفة المادية (PF)، بينما تسمح القيمة "yes" للـ VF بالتواصل مع الوظائف الافتراضية الأخرى على هذا المضيف حتى لو كانت حالة PF معطلة، والمقيمة "no" تجعل الأجهزة تسقط أي حزم مرسلة بواسطة الـ VF. عند عدم التعيين، ستُستخدم القيمة المبدئية للنواة (kernel).

    أُضيف في الإصدار 251.

MACAddress=
    يحدد عنوان MAC للوظيفة المبدئية.

    أُضيف في الإصدار 251.

خيارات القسم [ENERGYEFFICIENTETHERNET]

يتحكم القسم [EnergyEfficientEthernet] في ميزة الإيثرنت الموفر للطاقة (EEE) للواجهة، ويقبل المفاتيح التالية.

Enable=
    يأخذ وسيطاً منطقياً. عندما يكون true، ستُفعَّل ميزة الإيثرنت الموفر للطاقة (EEE) على الواجهة. المبدئي هو عدم الضبط، ولن تتغير حالة تفعيل EEE.

    أُضيف في الإصدار 258.

TxLowPowerIdle=
    يأخذ وسيطاً منطقياً. عندما يكون true، سيُفعَّل نمط خمول الطاقة المنخفضة للإرسال (Tx-LPI) لميزة الإيثرنت الموفر للطاقة على الواجهة. المبدئي هو عدم الضبط، ولن تتغير حالة تفعيل النمط.

    أُضيف في الإصدار 258.

TxLowPowerIdleSec=
    يأخذ فترة زمنية. يضبط هذا المدة التي يجب ألا تدخل فيها الواجهة إلى نمط خمول الطاقة المنخفضة بعد الإرسال. إذا كانت قصيرة جداً، فقد تنخفض الأداء. إذا كانت طويلة جداً، فقد لا تُحقق وفراً في الطاقة. المبدئي هو عدم الضبط، ولن تتغير الفترة الزمنية.

    أُضيف في الإصدار 258.

LinkMode=
    يأخذ قائمة بأنماط الربط، على سبيل المثال: "1000baset-full". انظر الجدول الخاص بإعداد Advertise= في قسم [Link] أعلاه لمعرفة القيم الممكنة. يضبط هذا أنماط الاتصال القادرة على الإيثرنت الموفر للطاقة التي سيُعلن عنها. المبدئي هو عدم الضبط، ولن تتغير الأنماط المعلن عنها.

    أُضيف في الإصدار 258.

المحددات

تحل بعض الإعدادات مُحددات يمكن استخدامها لكتابة ملفات وحدات عامة تشير إلى بارامترات وقت التشغيل أو الوحدة التي تُستبدل عند تحميل ملفات الوحدات. يجب أن تكون المُحددات معروفة وقابلة للحل ليكون الإعداد صالحاً. المُحددات التالية مفهومة:

جدول 2. المُحددات المتاحة في ملفات الوحدات
المحدد | المعنى | التفاصيل
"%a" | المعمارية | سلسلة نصية قصيرة تحدد معمارية النظام المحلي. سلسلة مثل x86 أو x86-64 أو arm64. انظر المعماريات المحددة لـ ConditionArchitecture= في systemd.unit(5) للحصول على قائمة كاملة.
"%A" | إصدار صورة نظام التشغيل | معرف إصدار صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_VERSION= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
"%b" | معرف الإقلاع | معرف الإقلاع للنظام المشغل، منسق كسلسلة نصية. انظر random(4) لمزيد من المعلومات.
"%B" | معرف بناء نظام التشغيل | معرف بناء نظام التشغيل للنظام المشغل، كما يُقرأ من حقل BUILD_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
"%H" | اسم المضيف | اسم مضيف النظام المشغل.
"%l" | اسم المضيف القصير | اسم مضيف النظام المشغل، مقتطعًا عند النقطة الأولى لإزالة أي مكون نطاق.
"%m" | معرف الآلة | معرف الجهاز للنظام المشغل، منسق كسلسلة نصية. انظر machine-id(5) لمزيد من المعلومات.
"%M" | معرف صورة نظام التشغيل | معرف صورة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل IMAGE_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
"%o" | معرف نظام التشغيل | معرف نظام التشغيل للنظام المشغل، كما يُقرأ من حقل ID= في /etc/os-release. انظر os-release(5) لمزيد من المعلومات.
"%q" | اسم المضيف الجميل | اسم المضيف الجميل للنظام المشغل، كما يُقرأ من حقل PRETTY_HOSTNAME= في /etc/machine-info. إذا لم يُضبط، يُحل إلى اسم المضيف القصير. انظر machine-info(5) لمزيد من المعلومات.
"%T" | مجلد للملفات المؤقتة | هذا إما /tmp أو المسار الذي ضُبطت إليه "$TMPDIR" أو "$TEMP" أو "$TMP". (لاحظ أن الدليل قد يُحدد بدون شرطة مائلة لاحقة.)
"%v" | إصدار النواة | مطابق لمخرجات uname -r.
"%V" | مجلد للملفات المؤقتة الأكبر حجمًا والمستمرة | هذا إما /var/tmp أو المسار الذي ضُبطت إليه "$TMPDIR" أو "$TEMP" أو "$TMP". (لاحظ أن الدليل قد يُحدد بدون شرطة مائلة لاحقة.)
"%w" | معرف إصدار نظام التشغيل | معرف إصدار نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VERSION_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.
"%W" | معرف نوع نظام التشغيل | معرف تنويعة نظام التشغيل للنظام المشغل، كما يُقرأ من حقل VARIANT_ID= في /etc/os-release. إذا لم يُضبط، يُحل إلى سلسلة فارغة. انظر os-release(5) لمزيد من المعلومات.

أمثلة

مثال 1. /usr/lib/systemd/network/99-default.link

يحدد ملف الربط 99-default.link المُرفق مع systemd السياسات المبدئية لاسم الواجهة، والأسماء البديلة، وعنوان MAC للروابط.

    [Match]
    OriginalName=*

    [Link]
    NamePolicy=keep kernel database onboard slot path
    AlternativeNamesPolicy=database onboard slot path
    MACAddressPolicy=persistent

مثال 2. /etc/systemd/network/10-dmz.link

يعين هذا المثال الاسم الثابت "dmz0" للواجهة ذات عنوان MAC 00:a0:de:63:7a:e6:

    [Match]
    MACAddress=00:a0:de:63:7a:e6

    [Link]
    Name=dmz0

NamePolicy= غير مضبوط، لذا يسري مفعول Name=. نستخدم البادئة "10-" لترتيب هذا الملف مبكراً في القائمة. لاحظ أنه يجب أن يكون قبل 99-default.link، أي يجب أن يكون له بادئة رقمية، ليكون له أي تأثير.

مثال 3. (إعادة) تطبيق ملف .link على واجهة

بعد إنشاء ملف .link جديد، أو تعديل ملف .link موجود، يمكن تطبيق الإعدادات الجديدة على الواجهة المطابقة بالأوامر التالية:

    $ sudo udevadm control --reload
    $ sudo ip link set eth0 down
    $ sudo udevadm trigger --verbose --settle --action add /sys/class/net/eth0

قد تحتاج أيضًا إلى إيقاف الخدمة التي تدير واجهة الشبكة، على سبيل المثال: systemd-networkd.service(8) أو NetworkManager.service قبل العملية أعلاه، ثم إعادة تشغيل الخدمة بعد ذلك. لمزيد من التفاصيل حول أمر udevadm، انظر udevadm(8).

مثال 4. تنقيح تعيينات NamePolicy=

    $ sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/hub0
    ...
    حُلل ملف الضبط /usr/lib/systemd/network/99-default.link
    حُلل ملف الضبط /etc/systemd/network/10-eth0.link
    ID_NET_DRIVER=cdc_ether
    ملف الضبط /etc/systemd/network/10-eth0.link ينطبق على الجهاز hub0
    link_config: التفاوض الآلي غير مضبوط أو مُمكَّن، السرعة والازدواج غير قابلين للكتابة.
    hub0: الجهاز لديه name_assign_type=4
    استخدام مخطط تسمية الواجهة المبدئي 'v240'.
    hub0: السياسات لم تنتج اسماً، استخدام الاسم المحدد Name=hub0.
    ID_NET_LINK_FILE=/etc/systemd/network/10-eth0.link
    ID_NET_NAME=hub0
    ...

ضبط Name= الصريح هو الذي يسود في هذه الحالة.

    sudo SYSTEMD_LOG_LEVEL=debug udevadm test-builtin net_setup_link /sys/class/net/enp0s31f6
    ...
    حُلل ملف الضبط /usr/lib/systemd/network/99-default.link
    حُلل ملف الضبط /etc/systemd/network/10-eth0.link
    أُنشئ سياق ضبط الربط.
    ID_NET_DRIVER=e1000e
    ملف الضبط /usr/lib/systemd/network/99-default.link ينطبق على الجهاز enp0s31f6
    link_config: التفاوض الآلي غير مضبوط أو مُمكَّن، السرعة والازدواج غير قابلين للكتابة.
    enp0s31f6: الجهاز لديه name_assign_type=4
    استخدام مخطط تسمية الواجهة المبدئي 'v240'.
    enp0s31f6: السياسة *keep*: الحفاظ على اسم فضاء المستخدم الموجود
    enp0s31f6: الجهاز لديه addr_assign_type=0
    enp0s31f6: MAC الموجود على الجهاز يطابق بالفعل السياسة *persistent*
    ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
    ...

في هذه الحالة، أُعيد تسمية الواجهة بالفعل، لذا فإن سياسة keep المحددة كخيار أول في 99-default.link تعني الحفاظ على الاسم الموجود. إذا أُزيلت keep، أو إذا كنا في مرحلة الإقلاع قبل حدوث إعادة التسمية، فقد نحصل على ما يلي بدلاً من ذلك:

    enp0s31f6: Policy *path* yields "enp0s31f6".
    enp0s31f6: Device has addr_assign_type=0
    enp0s31f6: MAC on the device already matches policy *persistent*
    ID_NET_LINK_FILE=/usr/lib/systemd/network/99-default.link
    ID_NET_NAME=enp0s31f6
    ...

يُرجى ملاحظة أن تفاصيل المخرجات قابلة للتغيير.

مثال 5. /etc/systemd/network/10-internet.link

يعين هذا المثال الاسم الثابت "internet0" للواجهة ذات مسار الجهاز "pci-0000:00:1a.0-*":

    [Match]
    Path=pci-0000:00:1a.0-*

    [Link]
    Name=internet0

مثال 6. /etc/systemd/network/25-wireless.link

إليك مثال معقد للغاية يوضح استخدام عدد كبير من إعدادات [Match] و[Link].

    [Match]
    MACAddress=12:34:56:78:9a:bc
    Driver=brcmsmac
    Path=pci-0000:02:00.0-*
    Type=wlan
    Virtualization=no
    Host=my-laptop
    Architecture=x86-64

    [Link]
    Name=wireless0
    MTUBytes=1450
    BitsPerSecond=10M
    WakeOnLan=magic
    MACAddress=cb:a9:87:65:43:21

انظر أيضًا

systemd-udevd.service(8), udevadm(8), systemd.netdev(5), systemd.network(5), systemd-network-generator.service(8)

ملاحظات

1.  💣💥🧨💥💥💣 يرجى ملاحظة أن ملفات الضبط تلك يجب أن تكون متوفرة في جميع الأوقات. إذا كان /usr/local/ قسماً منفصلاً، فقد لا يكون متوفراً أثناء بدء التشغيل المبكر، ويجب عدم استخدامه للضبط.

2.  بيانات اعتماد النظام والخدمة
    https://systemd.io/CREDENTIALS

3.  إفراغ تجزئة عام جزئي
    https://docs.kernel.org/networking/segmentation-offloads.html#partial-generic-segmentation-offload

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.