2011-02-03 14 views
5

मैं एक एसएनएमपी प्रबंधक और एमआईबी से एक अनुरूपित एसएनएमपी एजेंट लिख रहा हूं (एक प्रबंधक का परीक्षण करने के लिए)। मेरे पास एक सारणी है जो नीचे दी गई है कि प्रबंधक पंक्तियों को जोड़ने/हटाने में सक्षम होना चाहिए। रोस्टैटस का उपयोग करके ऐसा करने का पारंपरिक तरीका क्या है? क्या रोस्टैटस पहले सेट है? क्या अन्य ओआईडी पीडीयू में शामिल किए जा सकते हैं?रोस्टैटस का उपयोग कैसे करें?

मेरा प्रारंभिक उपयोग केस स्टार्टअप पर तालिका खाली है।

createStuffEntry.1.1.1 = 1 
createStuffEntry.2.1.1 = 1 
createStuffEntry.3.1.1 = 99 
createStuffEntry.4.1.1 = "Dustbunnies" 
createStuffEntry.5.1.1 = 5 

चाहिए नीचे परिभाषा के लिए है कि काम: तो अगर मैं इस तरह एक सेट PDU भेजें? सीआरओस्टैटस छोड़ा गया है तो क्या होना चाहिए?

createStuffTable OBJECT-TYPE 
    SYNTAX SEQUENCE OF CreateStuffEntry 
    ACCESS not-accessible 
    STATUS mandatory 
    DESCRIPTION 
      "A table for creating stuff." 
    ::= { parentGroup 1 } 

createStuffEntry OBJECT-TYPE 
    SYNTAX CreateStuffEntry 
    ACCESS not-accessible 
    STATUS mandatory 
    DESCRIPTION 
      "An entry for building a stuff to create." 
    INDEX { cPlanID, cID } 
    ::= { createStuffTable 1 } 

CreateStuffEntry ::= 
    SEQUENCE { 
     cPlanID 
      INTEGER, 
     cID 
      INTEGER, 
     cTemplateID 
      INTEGER, 
     cStuffName 
      DisplayString, 
     cRowStatus 
      RowStatus 
    } 

cPlanID OBJECT-TYPE 
    SYNTAX INTEGER 
    ACCESS read-write 
    STATUS mandatory 
    DESCRIPTION 
      "The plan ID (cpPlanID)" 
    ::= { createStuffEntry 1 } 

cID OBJECT-TYPE 
    SYNTAX INTEGER 
    ACCESS read-write 
    STATUS mandatory 
    DESCRIPTION 
      "The table entry index." 
    ::= { createStuffEntry 2 } 

cTemplateID OBJECT-TYPE 
    SYNTAX INTEGER 
    ACCESS read-write 
    STATUS mandatory 
    DESCRIPTION 
      "The ID of the stuff template to create this stuff from." 
    ::= { createStuffEntry 3 } 

cStuffName OBJECT-TYPE 
    SYNTAX DisplayString 
    ACCESS read-write 
    STATUS mandatory 
    DESCRIPTION 
      "The stuff name." 
    ::= { createStuffEntry 4 } 


cRowStatus OBJECT-TYPE 
    SYNTAX RowStatus 
    ACCESS read-write 
    STATUS current 
    DESCRIPTION 
     "This OID uses six main statuses: 
     active(1)   is in use and available in stuffTable 
     notinService(2) it is present but not yet created 
     notReady(3)  it is present but missing info 
     createAndGo(4) create stuff in stuffTable. Row will be 
          added to this table if necessary. 
     createAndWait(5) add stuff row to this table 
     destroy(6)  will remove the stuff row 

     This OID is used to add/remove rows for stuff creation. 
     It can also be used to determine if a stuff has been 
     created successfully." 
    ::= { createStuffEntry 5 } 

नोट यह एक SMI v1 RowStatus एक परिभाषित प्रकार के रूप में उपयोग करते हुए एमआईबी है, के समान here का वर्णन किया। इस प्रकार पढ़ा गया है, यहां बताया गया है, बजाय यहां बताया गया है।

उत्तर

3

रोस्टैटस टेक्स्टुअल कन्वेंशन वास्तव में एजेंट को यह कैसे लागू करता है में उचित मात्रा में छूट देता है। इस प्रकार, एक प्रबंधक इन तरीकों के दोनों (लेकिन दो का समर्थन कर सकते हैं) का समर्थन करना चाहिए और एजेंट केवल एक का समर्थन करना चाहिए:

  1. लगातार PDUs:
    1. पंक्ति स्थिति चर सेट "createAndWait"
    2. को सभी कॉलम आप की स्थापना चाहते हैं (एक PDU में या कई) सेट
    3. पंक्ति स्थिति चर करने के लिए "सक्रिय"
  2. पंक्ति स्थिति चर करने के लिए "createAndGo" सेट और ** सब ** चर शामिल सेट तुम्हें चाहिए डी को एक पीडीयू

दुर्भाग्य से, एक प्रबंधक को बुद्धिमान होना चाहिए और पता होना चाहिए कि एक या दूसरे का समर्थन करने वाले एजेंटों से बात कैसे करें। सामान्य धारणा यह है कि प्रबंधकों को बड़ा और दंड एजेंटों की तुलना में मुद्दों के आसपास कोड करने के लिए और अधिक जगह है। हालांकि कई छोटे डिवाइस केवल ऊपर # 2 का समर्थन करते हैं।

+0

# 2 में एजेंट एजेंट की स्थिति स्थिति को पीडीयू में पहली बार लोड करने की अपेक्षा करेगा? क्या इससे कोई फर्क पड़ता है? –

+2

यह ** ** मायने नहीं रखता है, लेकिन पिछले कुछ सालों में मैंने जो सीखा है वह यह है कि लोग ऐसे कोड लिखते हैं जो नियमों का पालन नहीं करते हैं और उम्मीदें करते हैं कि उन्हें नहीं करना चाहिए। तो ... मैं इसे पहले रखूंगा क्योंकि कुछ एजेंट इसकी अपेक्षा करेंगे। –

+1

मुझे नॉर्टेल से एसएनएमपी एजेंटों से निपटना पड़ा जो स्केलर और कॉलमर ऑब्जेक्ट्स और सिस्को एजेंटों के बीच नहीं बता सका जो एंटरप्राइज़ एटीएम स्विच ला सकता है। एसएनएमपी बहुत आसान है और यह आश्चर्यजनक है कि कुछ कार्यान्वयनकर्ता वास्तव में आरएफसी कैसे पढ़ते हैं। –

संबंधित मुद्दे