ddp(7)

الاسم
ddp - تطبيق بروتوكول AppleTalk في لينكس

موجز
#include <sys/socket.h>
#include <netatalk/at.h>

ddp_socket = socket(AF_APPLETALK, SOCK_DGRAM, 0);
raw_socket = socket(AF_APPLETALK, SOCK_RAW, protocol);

الوصف
ينفذ لينكس بروتوكولات AppleTalk الموصوفة في Inside AppleTalk. توجد طبقة DDP و AARP فقط في النواة. صُممت لاستخدامها عبر مكتبات بروتوكول netatalk. توثق هذه الصفحة الواجهة لمن يرغب أو يحتاج لاستخدام طبقة DDP مباشرة.

يعمل الاتصال بين AppleTalk وبرنامج المستخدم باستخدام واجهة مقبس متوافقة مع BSD. لمزيد من المعلومات حول المقابس، انظر socket(7).

يُنشأ مقبس AppleTalk باستدعاء دالة socket(2) مع وسيطة عائلة مقبس AF_APPLETALK. أنواع المقابس الصالحة هي SOCK_DGRAM لفتح مقبس ddp أو SOCK_RAW لفتح مقبس raw. protocol هو بروتوكول AppleTalk المراد استقباله أو إرساله. بالنسبة لـ SOCK_RAW يجب تحديد ATPROTO_DDP.

يجوز فتح المقابس الخام فقط بواسطة عملية ذات معرف مستخدم فعال 0 أو عندما تمتلك العملية القدرة CAP_NET_RAW.

  تنسيق العنوان
يُعرف عنوان مقبس AppleTalk كمزيج من رقم شبكة ورقم عقدة ورقم منفذ.

    struct at_addr {
        unsigned short s_net;
        unsigned char  s_node;
    };

    struct sockaddr_atalk {
        sa_family_t    sat_family;    /* address family */
        unsigned char  sat_port;      /* port */
        struct at_addr sat_addr;      /* net/node */
    };

يُضبط sat_family دائمًا على AF_APPLETALK. يحتوي sat_port على المنفذ. تُعرف أرقام المنافذ الأقل من 129 باسم المنافذ المحجوزة. فقط العمليات ذات معرف المستخدم الفعال 0 أو القدرة CAP_NET_BIND_SERVICE قد تستخدم bind(2) لهذه المقابس. sat_addr هو عنوان المضيف. يحتوي العضو net من struct at_addr على شبكة المضيف بترتيب بايت الشبكة. قيمة AT_ANYNET هي حرف بدل وتشير أيضًا إلى “هذه الشبكة.” يحتوي العضو node من struct at_addr على رقم عقدة المضيف. قيمة AT_ANYNODE هي حرف بدل وتشير أيضًا إلى “هذه العقدة.” قيمة ATADDR_BCAST هي عنوان بث محلي للرابط.

  خيارات المقبس
لا تُدعم خيارات مقبس خاصة بالبروتوكول.

  واجهات /proc
يدعم IP مجموعة من واجهات /proc لتكوين بعض معلمات AppleTalk العامة. يمكن الوصول إلى المعلمات بقراءة أو كتابة ملفات في الدليل /proc/sys/net/atalk/.

aarp-expiry-time
    الفاصل الزمني (بالثواني) قبل انتهاء صلاحية إدخال خبيئة AARP.

aarp-resolve-time
    الفاصل الزمني (بالثواني) قبل حل إدخال خبيئة AARP.

aarp-retransmit-limit
    عدد إعادة إرسال استعلام AARP قبل إعلان العقدة ميتة.

aarp-tick-time
    معدل المؤقت (بالثواني) للمؤقت الذي يقود AARP.

تطابق القيم المبدئية المواصفات ولا ينبغي أبدًا تغييرها.

  Ioctls
تنطبق جميع ioctls الموصوفة في socket(7) على DDP.

الأخطاء

EACCES
    حاول المستخدم تنفيذ عملية بدون الصلاحيات اللازمة. تتضمن هذه الإرسال إلى عنوان بث بدون تعيين علم البث، ومحاولة الربط بمنفذ محجوز بدون معرف مستخدم فعال 0 أو CAP_NET_BIND_SERVICE.

EADDRINUSE
    حاول الربط بعنوان قيد الاستخدام بالفعل.

EADDRNOTAVAIL
    طُلبت واجهة غير موجودة أو أن عنوان المصدر المطلوب لم يكن محليًا.

EAGAIN
    العملية على مقبس غير حاجب كانت ستحجب.

EALREADY
    عملية اتصال على مقبس غير حاجز قيد التنفيذ بالفعل.

ECONNABORTED
    أُغلِق الاتصال أثناء عملية accept(2).

EHOSTUNREACH
    لا يتطابق إدخال جدول توجيه مع عنوان الوجهة.

EINVAL
    مُرر معامل غير صالح.

EISCONN
    استُدعي connect(2) على مقبس متصل بالفعل.

EMSGSIZE
    البيانات أكبر من MTU لـ DDP.

ENODEV
    جهاز الشبكة غير متوفر أو غير قادر على إرسال IP.

ENOENT
    استُدعي SIOCGSTAMP على مقبس لم تصل إليه أي حزمة.

ENOMEM
ENOBUFS
    الذاكرة المتوفرة غير كافية.

ENOPKG
    لم يُضبط نظام فرعي للنواة.

ENOPROTOOPT
EOPNOTSUPP
    خيار مقبس غير صالح مُرِّرَ.

ENOTCONN
    العملية محددة فقط على مقبس متصل، لكن المقبس لم يكن متصلاً.

EPERM
    المستخدم لا يملك الإذن لتعيين أولوية عالية، أو إجراء تغيير في التهيئة، أو إرسال إشارات إلى العملية أو المجموعة المطلوبة.

EPIPE
    أُغلق الاتصال أو أُنهي بشكل غير متوقع من الطرف الآخر.

ESOCKTNOSUPPORT
    المقبس غير مهيأ، أو تم طلب نوع مقبس غير معروف.

الإصدارات
AppleTalk مدعوم من Linux 2.0 أو أعلى. واجهات /proc موجودة منذ Linux 2.2.

ملاحظات
كن حذرًا جدًا مع خيار SO_BROADCAST؛ فهو ليس مميزًا في Linux. من السهل إثقال الشبكة بالإرسال غير الحذر إلى عناوين البث.

  التوافقية
واجهة مقبس AppleTalk الأساسية متوافقة مع netatalk على الأنظمة المشتقة من BSD. العديد من أنظمة BSD تفشل في التحقق من SO_BROADCAST عند إرسال إطارات البث؛ قد يؤدي هذا إلى مشاكل توافق.

وضع المقبس الخام فريد في Linux ويوجد لدعم حزمة CAP البديلة وأدوات مراقبة AppleTalk بسهولة أكبر.

العلل
هناك الكثير من قيم الخطأ غير المتسقة.

أوامر ioctl المستخدمة لتهيئة جداول التوجيه، والأجهزة، وجداول AARP، والأجهزة الأخرى لم تُوصف بعد.

انظر أيضًا
recvmsg(2)، sendmsg(2)، capabilities(7)، socket(7)

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

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

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