MIB2C(1) Net-SNMP MIB2C(1)

mib2c - تولید کد الگو برای گسترش agent

mib2c [-h] -c CONFIGFILE [-I PATH] [-f OUTNAME] [-i][-s][-q][-S VAR=VAL] MIBNODE

ابزار mib2c برای دریافت بخشی از درخت MIB (همان‌طور که توسط یک فایل MIB تعریف شده است) و تولید کد الگوی C لازم جهت پیاده‌سازی اشیاء مدیریتی مربوطه درون آن طراحی شده است.

برای پیاده‌سازی یک ماژول MIB جدید، سه فایل ضروری است:

- فایل تعریف MIB
- فایل سرآیند C
- فایل پیاده‌سازی C.

ابزار mib2c از فایل تعریف MIB برای تولید این دو فایل کد C استفاده می‌کند. بنابراین، mib2c الگویی تولید می‌کند که می‌توانید آن را ویرایش کرده و منطق لازم برای به‌دست آوردن اطلاعات از سیستم‌عامل یا برنامه را جهت تکمیل ماژول به آن بیفزایید.

متغیر MIBNODE گره MIB در بالاترین سطح است که می‌خواهید برای آن کد تولید کنید. شما باید نام یک گره mib (مانند ifTable) را در خط فرمان به mib2c بدهید، نه نام یک فایل mib را. این موضوع رایج‌ترین اشتباه کاربران است.

ابزار mib2c از هر دو ساختار MIB مبتنی بر SMIv1 و SMIv2 پشتیبانی می‌کند.

برای اینکه mib2c بتواند کد C را برای MIB تولید کند، باید قادر به یافتن و بارگذاری فایل MIB باشد. برای فعال ساختن امکان یافتن فایل MIB توسط mib2c، متغیر محیطی MIBS را به‌گونه‌ای تنظیم کنید که شامل فایل MIB مورد استفاده شما باشد. نمونه‌ای از مقداردهی این متغیر محیطی به شرح زیر است:


MIBS=+NET-SNMP-TUTORIAL-MIB


یا


MIBS=ALL

مثال اول اطمینان حاصل می‌کند که mib2c علاوه بر ماژول‌های پیش‌فرض MIB، فایل NET-SNMP-TUTORIAL-MIB را نیز بیابد. فهرست پیش‌فرض ماژول‌های MIB هنگامی که این بسته نرم‌افزاری برای نخستین بار پیکربندی و کامپایل می‌شود تنظیم می‌گردد و اساساً منطبق با فهرست ماژول‌هایی است که agent از آن‌ها پشتیبانی می‌کند. مثال دوم تضمین می‌کند که mib2c تمام MIBها را در مکان جستجوی فایل‌های MIB بیابد. مکان جستجوی پیش‌فرض برای فایل‌های MIB مسیر /usr/share/snmp/mibs است. این مسیر جستجو را می‌توان با متغیر محیطی MIBDIRS تغییر داد.

هم فایل‌های MIB مورد نظر برای بارگذاری و هم مسیر جستجوی فایل MIB را می‌توان در فایل snmp.conf نیز پیکربندی کرد. لطفاً برای اطلاعات بیشتر به snmp.conf(5) مراجعه کنید.

فایل‌های c.* و h.* تولیدشده در دایرکتوری کاری فعلی ایجاد خواهند شد.

نمایش یک پیام راهنما.
استفاده از CONFIGFILE هنگام تولید کد. این فایل‌ها ابتدا در دایرکتوری جاری و سپس در دایرکتوری /usr/share (محل قرارگیری فایل‌های پیکربندی پیش‌فرض mib2c) جستجو خواهند شد. اجرای mib2c بدون گزینهٔ -c CONFIGFILE شرحی از مقادیر معتبر برای CONFIGFILE را نمایش می‌دهد، یعنی فایل‌های پیکربندی موجود، شامل فایل‌های جدیدی که ممکن است خودتان نوشته باشید.
برای مثال،
% mib2c ifTable
شرحی از مقادیر در دسترس فعلی برای CONFIGFILE را نمایش خواهد داد.
مقادیر زیر برای CONFIGFILE پشتیبانی می‌شوند:
mib2c.mfd.conf
mib2c.scalar.conf
mib2c.int_watch.conf
mib2c.iterate.conf
mib2c.create-dataset.conf
mib2c.array-user.conf
mib2c.column_defines.conf
mib2c.column_enums.conf
تولید کد برای اشیاء اسکالر (SCALAR OBJECTS):
اگر در حال نوشتن کد برای چند شیء اسکالر هستید، دستور زیر را اجرا کنید:

mib2c -c mib2c.scalar.conf MIBNODE

اگر می‌خواهید متغیرهای عدد صحیح را به‌سادگی به اسکالرهای عدد صحیح پیوند بزنید، استفاده کنید از:

mib2c -c mib2c.int_watch.conf MIBNODE

تولید کد برای جدول‌ها (TABLES):

فایل پیکربندی پیشنهادی برای جدول‌ها، فایل پیکربندی MFD (یا MIBs for Dummies) است. این پیکربندی تا حد ممکن جزئیات SNMP را پنهان کرده و توابعی کوچک و با درک آسان تولید می‌کند. این پیکربندی همچنین منعطف‌ترین و مستندترین فایل پیکربندی است. برای مشاهدهٔ نمونه، فایل‌های agent/mibgroup/if-mib/ifTable/ifTable*.c را ببینید:


mib2c -c mib2c.mfd.conf MIBNODE

اگر داده‌های جدول شما در جای دیگری نگهداری می‌شوند (مثلاً در هسته قرار دارند و در حافظهٔ خود agent نیستند) و نیاز دارید برای یافتن داده‌های مناسبِ سطر SNMP مورد دسترسی، روی آن‌ها پیمایش (iterate) کنید؛ برای مشاهدهٔ نمونه، فایل agent/mibgroup/mibII/vacm_context.c را ببینید:

mib2c -c mib2c.iterate.conf MIBNODE

اگر داده‌های جدول شما درون agent نگهداری می‌شوند (یعنی در یک منبع خارجی قرار ندارند) و کاملاً داده‌محور هستند (یعنی با رخداد یک set نیازی به انجام کاری ندارید)؛ برای مشاهدهٔ نمونه‌ای از چنین جدولی، فایل agent/mibgroup/examples/data_set.c را ببینید:

mib2c -c mib2c.create-dataset.conf MIBNODE

اگر داده‌های جدول شما درون agent نگهداری می‌شوند (یعنی در یک منبع خارجی نیستند)، و می‌توانید داده‌های خود را بر اساس نمایه‌های جدول مرتب نگه دارید اما هنگام رخداد یک set باید کاری انجام دهید:

mib2c -c mib2c.array-user.conf MIBNODE

تولید تعاریف فایل سرآیند (HEADER FILE DEFINITIONS)

برای تولید صرفاً یک سرآیند حاوی یک define برای هر شماره ستون در جدول خود:

mib2c -c mib2c.column_defines.conf MIBNODE

برای تولید صرفاً یک سرآیند حاوی یک define برای هر مقدار شمارشی (enum) در هر ستونی که شامل enum است:

mib2c -c mib2c.column_enums.conf MIBNODE

تولید کد برای شاخه کدهای 4.X (رابط قدیمی‌تر)

mib2c -c mib2c.old-api.conf MIBNODE

جستجوی فایل‌های پیکربندی در PATH. می‌توان با استفاده از چندین سوئیچ -I یا با استفاده از یک سوئیچ همراه با فهرستی از مسیرها که با کاما از هم جدا شده‌اند، چندین مسیر را مشخص کرد.
قرار دادن کد خروجی در OUTNAME.c و OUTNAME.h. به‌طور معمول، mib2c کدهای خروجی را در فایل‌هایی قرار می‌دهد که متناظر با نام جدول‌هایی هستند که کد برای آن‌ها تولید می‌شود، که احتمالاً در هر صورت همان چیزی است که می‌خواهید.
دستور indent روی کد حاصل اجرا نشود.
به‌دنبال MIBNODE.sed نگردد و sed را روی کد حاصل اجرا نکند. این ویژگی برای کوتاه‌کردن نام‌های طولانی متغیرهای mib در کد مفید است.
اجرا در حالت «بی‌صدا» (quiet) که پیام‌های وضعیت تولیدشده توسط mib2c را به حداقل می‌رساند.
مقداردهی اولیه به متغیر VAR در فایل mib2c.*.conf با مقدار VAL. با این حال، در حال حاضر هیچ‌کدام از فایل‌های پیکربندی موجود mib2c (شامل mib2c.*.conf) از این ویژگی استفاده نمی‌کنند، بنابراین این گزینه فقط برای استفاده در آینده باید در نظر گرفته شود.

دستور زیر کد الگوی C را برای فایل‌های سرآیند و پیاده‌سازی جهت پیاده‌سازی UCD-DEMO-MIB::ucdDemoPublic تولید می‌کند:

% mib2c -c mib2c.scalar.conf ucdDemoPublic
writing to ucdDemoPublic.h
writing to ucdDemoPublic.c
running indent on ucdDemoPublic.h
running indent on ucdDemoPublic.c

فایل‌های ucdDemoPublic.c و ucdDemoPublic.h حاصل در دایرکتوری کاری فعلی تولید می‌شوند.

دستور زیر کد الگوی C را برای فایل‌های سرآیند و پیاده‌سازی ماژول جهت پیاده‌سازی TCP-MIB::tcpConnTable تولید می‌کند:

% mib2c -c mib2c.iterate.conf tcpConnTable
writing to tcpConnTable.h
writing to tcpConnTable.c
running indent on tcpConnTable.h
running indent on tcpConnTable.c

فایل‌های tcpConnTable.c و tcpConnTable.h حاصل در دایرکتوری کاری فعلی تولید می‌شوند.

snmpcmd(1), snmp.conf(5)

05 Apr 2010 V5.9.5.2