home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume40 / nocol / part06 < prev    next >
Encoding:
Text File  |  1993-11-22  |  77.2 KB  |  2,689 lines

  1. Newsgroups: comp.sources.misc
  2. From: vikas@jvnc.net (Vikas Aggarwal)
  3. Subject: v40i136:  nocol - Network Monitoring System, Part06/26
  4. Message-ID: <1993Nov23.034709.5561@sparky.sterling.com>
  5. X-Md4-Signature: 5e39d61829411879a7d89018a9a7572e
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Sterling Software
  8. Date: Tue, 23 Nov 1993 03:47:09 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: vikas@jvnc.net (Vikas Aggarwal)
  12. Posting-number: Volume 40, Issue 136
  13. Archive-name: nocol/part06
  14. Environment: INET, UNIX
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  nocol-3.0/src/cmu-snmp/cisco.mib91.C
  21. #   nocol-3.0/src/support/mping/mping.c
  22. # Wrapped by kent@sparky on Tue Nov  9 22:22:15 1993
  23. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  24. echo If this archive is complete, you will see the following message:
  25. echo '          "shar: End of archive 6 (of 26)."'
  26. if test -f 'nocol-3.0/src/cmu-snmp/cisco.mib91.C' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'nocol-3.0/src/cmu-snmp/cisco.mib91.C'\"
  28. else
  29.   echo shar: Extracting \"'nocol-3.0/src/cmu-snmp/cisco.mib91.C'\" \(59063 characters\)
  30.   sed "s/^X//" >'nocol-3.0/src/cmu-snmp/cisco.mib91.C' <<'END_OF_FILE'
  31. X                   ::= { ltsLineEntry 15 }
  32. X
  33. X               tsLineUses OBJECT-TYPE
  34. X                   SYNTAX  INTEGER
  35. X                   ACCESS  read-only
  36. X                   STATUS  mandatory
  37. X                   DESCRIPTION
  38. X                           "Number of times a connection has been made
  39. X                           to or from this line."
  40. X                   ::= { ltsLineEntry 16 }
  41. X
  42. X               tsLineNses OBJECT-TYPE
  43. X
  44. X
  45. X
  46. X
  47. X
  48. X          -- cisco MIB                                         [Page 67]
  49. X--
  50. X
  51. X
  52. X
  53. X
  54. X
  55. X          -- Request for Comments: Draft             cisco Systems, Inc.
  56. X
  57. X
  58. X                   SYNTAX  INTEGER
  59. X                   ACCESS  read-only
  60. X                   STATUS  mandatory
  61. X                   DESCRIPTION
  62. X                           "Current number of sessions in use on this
  63. X                           line."
  64. X                   ::= { ltsLineEntry 17 }
  65. X
  66. X               tsLineUser OBJECT-TYPE
  67. X                   SYNTAX  DisplayString
  68. X                   ACCESS  read-only
  69. X                   STATUS  mandatory
  70. X                   DESCRIPTION
  71. X                           "TACACS user name, if TACACS enabled, of user
  72. X                           on this line."
  73. X                   ::= { ltsLineEntry 18 }
  74. X
  75. X               tsLineNoise OBJECT-TYPE
  76. X                   SYNTAX  INTEGER
  77. X                   ACCESS  read-only
  78. X                   STATUS  mandatory
  79. X                   DESCRIPTION
  80. X                           "Count of garbage characters received when
  81. X                           line inactive."
  82. X                   ::= { ltsLineEntry 19 }
  83. X
  84. X               -- End of table
  85. X
  86. X
  87. X
  88. X               -- Local Terminal Server Line Session Table
  89. X
  90. X          -- This group contains terminal server specific
  91. X          -- information on a per line and per session basis.
  92. X
  93. X               ltsLineSessionTable OBJECT-TYPE
  94. X                   SYNTAX  SEQUENCE OF LTsLineSessionEntry
  95. X                   ACCESS  not-accessible
  96. X                   STATUS  mandatory
  97. X                   DESCRIPTION
  98. X                            "A list of terminal server line and session
  99. X                            entries."
  100. X                   ::= { lts 3 }
  101. X
  102. X               ltsLineSessionEntry OBJECT-TYPE
  103. X
  104. X
  105. X
  106. X
  107. X
  108. X          -- cisco MIB                                         [Page 68]
  109. X--
  110. X
  111. X
  112. X
  113. X
  114. X
  115. X          -- Request for Comments: Draft             cisco Systems, Inc.
  116. X
  117. X
  118. X                   SYNTAX LTsLineSessionEntry
  119. X                   ACCESS  not-accessible
  120. X                   STATUS  mandatory
  121. X                   DESCRIPTION
  122. X                            "A collection of per session and per TTY
  123. X                            objects in the cisco Terminal Server
  124. X                            implementation."
  125. X                   INDEX { INTEGER, INTEGER }
  126. X               ::= { ltsLineSessionTable 1 }
  127. X
  128. X               LTsLineSessionEntry ::=
  129. X                   SEQUENCE {
  130. X                       tslineSesType
  131. X                           INTEGER,
  132. X                       tslineSesDir
  133. X                           INTEGER,
  134. X                       tslineSesAddr
  135. X                           IpAddress,
  136. X                       tslineSesName
  137. X                           DisplayString,
  138. X                       tslineSesCur
  139. X                           INTEGER,
  140. X                       tslineSesIdle
  141. X                           INTEGER
  142. X                   }
  143. X
  144. X
  145. X          -- The following section describes the components of the
  146. X          -- table.
  147. X
  148. X               tslineSesType OBJECT-TYPE
  149. X                   SYNTAX  INTEGER {
  150. X                        unknown(1),
  151. X                        pad(2),
  152. X                        stream(3),
  153. X                        rlogin(4),
  154. X                        telnet(5),
  155. X                        tcp(6),
  156. X                        lat(7),
  157. X                        mop(8),
  158. X                        slip(9),
  159. X                        xremote(10)
  160. X                   }
  161. X                   ACCESS  read-only
  162. X                   STATUS  mandatory
  163. X
  164. X
  165. X
  166. X
  167. X
  168. X          -- cisco MIB                                         [Page 69]
  169. X--
  170. X
  171. X
  172. X
  173. X
  174. X
  175. X          -- Request for Comments: Draft             cisco Systems, Inc.
  176. X
  177. X
  178. X                   DESCRIPTION
  179. X                           "Type of session."
  180. X                   ::= { ltsLineSessionEntry 1 }
  181. X
  182. X               tslineSesDir OBJECT-TYPE
  183. X                   SYNTAX  INTEGER {
  184. X                        unknown(1),
  185. X                        incoming(2),
  186. X                        outgoing(3)
  187. X                   }
  188. X                   ACCESS  read-only
  189. X                   STATUS  mandatory
  190. X                   DESCRIPTION
  191. X                           "Direction of session."
  192. X                   ::= { ltsLineSessionEntry 2 }
  193. X
  194. X               tslineSesAddr OBJECT-TYPE
  195. X                   SYNTAX  IpAddress
  196. X                   ACCESS  read-only
  197. X                   STATUS  mandatory
  198. X                   DESCRIPTION
  199. X                           "Remote host address of session. [What about
  200. X                           PAD connections?]"
  201. X                   ::= { ltsLineSessionEntry 3 }
  202. X
  203. X               tslineSesName OBJECT-TYPE
  204. X                   SYNTAX  DisplayString
  205. X                   ACCESS  read-only
  206. X                   STATUS  mandatory
  207. X                   DESCRIPTION
  208. X                           "Remote host name of session."
  209. X                   ::= { ltsLineSessionEntry 4 }
  210. X
  211. X               tslineSesCur OBJECT-TYPE
  212. X                   SYNTAX  INTEGER
  213. X                   ACCESS  read-only
  214. X                   STATUS  mandatory
  215. X                   DESCRIPTION
  216. X                           "Boolean whether session is the currently
  217. X                           active one."
  218. X                   ::= { ltsLineSessionEntry 5 }
  219. X
  220. X               tslineSesIdle OBJECT-TYPE
  221. X                   SYNTAX  INTEGER
  222. X                   ACCESS  read-only
  223. X
  224. X
  225. X
  226. X
  227. X
  228. X          -- cisco MIB                                         [Page 70]
  229. X--
  230. X
  231. X
  232. X
  233. X
  234. X
  235. X          -- Request for Comments: Draft             cisco Systems, Inc.
  236. X
  237. X
  238. X                   STATUS  mandatory
  239. X                   DESCRIPTION
  240. X                           "Time in seconds session has been idle."
  241. X                   ::= { ltsLineSessionEntry 6 }
  242. X
  243. X               -- End of table
  244. X
  245. X
  246. X               tsMsgTtyLine OBJECT-TYPE
  247. X                   SYNTAX  INTEGER
  248. X                   ACCESS  read-write
  249. X                   STATUS  mandatory
  250. X                   DESCRIPTION
  251. X                           "tty line to send the message to. -1 will
  252. X                           send it to all tty lines"
  253. X                   ::= { lts 4 }
  254. X
  255. X               tsMsgIntervaltim OBJECT-TYPE
  256. X                   SYNTAX  INTEGER
  257. X                   ACCESS  read-write
  258. X                   STATUS  mandatory
  259. X                   DESCRIPTION
  260. X                           "Interval between reissuing message in
  261. X                           milliseconds. Minimum non-zero setting is
  262. X                           10000. 0 will cause the routine to choose its
  263. X                           own intervals becoming more frequent as
  264. X                           MessageDuration gets close to expiring. 2hr,
  265. X                           1hr, 30min, 5min, 1min"
  266. X                   ::= { lts 5 }
  267. X
  268. X               tsMsgDuration OBJECT-TYPE
  269. X                   SYNTAX  INTEGER
  270. X                   ACCESS  read-write
  271. X                   STATUS  mandatory
  272. X                   DESCRIPTION
  273. X                           "Length of time to reissue message in
  274. X                           milliseconds. Minimum non-zero setting is
  275. X                           10000. A setting of 0 will not repeat the
  276. X                           message."
  277. X                   ::= { lts 6 }
  278. X
  279. X               tsMsgText OBJECT-TYPE
  280. X                   SYNTAX  DisplayString
  281. X                   ACCESS  read-write
  282. X                   STATUS  mandatory
  283. X
  284. X
  285. X
  286. X
  287. X
  288. X          -- cisco MIB                                         [Page 71]
  289. X--
  290. X
  291. X
  292. X
  293. X
  294. X
  295. X          -- Request for Comments: Draft             cisco Systems, Inc.
  296. X
  297. X
  298. X                   DESCRIPTION
  299. X                           "Up to 256 characters that will make up the
  300. X                           message"
  301. X                   ::= { lts 7 }
  302. X
  303. X               tsMsgTmpBanner OBJECT-TYPE
  304. X                   SYNTAX  INTEGER {
  305. X                        no(1),
  306. X                        additive(2)
  307. X                   }
  308. X                   ACCESS  read-write
  309. X                   STATUS  mandatory
  310. X                   DESCRIPTION
  311. X                           "Should the message be used as a temporary
  312. X                           banner. 1 - No. 2 - In addition to the normal
  313. X                           banner"
  314. X                   ::= { lts 8 }
  315. X
  316. X               tsMsgSend OBJECT-TYPE
  317. X                   SYNTAX  INTEGER {
  318. X                        nothing(1),
  319. X                        reload(2),
  320. X                        messagedone(3),
  321. X                        abort(4)
  322. X                   }
  323. X                   ACCESS  read-write
  324. X                   STATUS  mandatory
  325. X                   DESCRIPTION
  326. X                           "Sends the message. The value determines what
  327. X                           to do after the message has completed."
  328. X                   ::= { lts 9 }
  329. X
  330. X
  331. X               -- Local cisco Flash Group
  332. X
  333. X          -- This group is present in all products which contain flash"
  334. X
  335. X               flashSize OBJECT-TYPE
  336. X                   SYNTAX  INTEGER
  337. X                   ACCESS  read-only
  338. X                   STATUS  mandatory
  339. X                   DESCRIPTION
  340. X                           "Total Size in Octets of Flash memory"
  341. X                   ::= { lflash 1 }
  342. X
  343. X
  344. X
  345. X
  346. X
  347. X
  348. X          -- cisco MIB                                         [Page 72]
  349. X--
  350. X
  351. X
  352. X
  353. X
  354. X
  355. X          -- Request for Comments: Draft             cisco Systems, Inc.
  356. X
  357. X
  358. X               flashFree OBJECT-TYPE
  359. X                   SYNTAX  INTEGER
  360. X                   ACCESS  read-only
  361. X                   STATUS  mandatory
  362. X                   DESCRIPTION
  363. X                           "Unused Size in Octets of Flash memory"
  364. X                   ::= { lflash 2 }
  365. X
  366. X               flashcontoller OBJECT-TYPE
  367. X                   SYNTAX  DisplayString
  368. X                   ACCESS  write-only
  369. X                   STATUS  mandatory
  370. X                   DESCRIPTION
  371. X                           "flash contoller"
  372. X                   ::= { lflash 3 }
  373. X
  374. X               flashcard OBJECT-TYPE
  375. X                   SYNTAX  DisplayString
  376. X                   ACCESS  write-only
  377. X                   STATUS  mandatory
  378. X                   DESCRIPTION
  379. X                           "flash card"
  380. X                   ::= { lflash 4 }
  381. X
  382. X               flashVPP OBJECT-TYPE
  383. X                   SYNTAX  INTEGER {
  384. X                        installed(1),
  385. X                        missing(2)
  386. X                   }
  387. X                   ACCESS  read-only
  388. X                   STATUS  mandatory
  389. X                   DESCRIPTION
  390. X                           "State of the VPP DIP"
  391. X                   ::= { lflash 5 }
  392. X
  393. X               flashErase OBJECT-TYPE
  394. X                   SYNTAX  INTEGER
  395. X                   ACCESS  write-only
  396. X                   STATUS  mandatory
  397. X                   DESCRIPTION
  398. X                           "Request to erase flash memory"
  399. X                   ::= { lflash 6 }
  400. X
  401. X               flashEraseTime OBJECT-TYPE
  402. X                   SYNTAX  TimeTicks
  403. X
  404. X
  405. X
  406. X
  407. X
  408. X          -- cisco MIB                                         [Page 73]
  409. X--
  410. X
  411. X
  412. X
  413. X
  414. X
  415. X          -- Request for Comments: Draft             cisco Systems, Inc.
  416. X
  417. X
  418. X                   ACCESS  read-only
  419. X                   STATUS  mandatory
  420. X                   DESCRIPTION
  421. X                           "Last time the flash was erased"
  422. X                   ::= { lflash 7 }
  423. X
  424. X               flashEraseStatus OBJECT-TYPE
  425. X                   SYNTAX  INTEGER
  426. X                   ACCESS  read-only
  427. X                   STATUS  mandatory
  428. X                   DESCRIPTION
  429. X                           "Status of current or last flash erasing"
  430. X                   ::= { lflash 8 }
  431. X
  432. X               flashToNet OBJECT-TYPE
  433. X                   SYNTAX  DisplayString
  434. X                   ACCESS  write-only
  435. X                   STATUS  mandatory
  436. X                   DESCRIPTION
  437. X                           "Write flash entry to tftp server. Value
  438. X                           should be the name of the flash entry to
  439. X                           send. Instance is the IP address of the tftp
  440. X                           host."
  441. X                   ::= { lflash 9 }
  442. X
  443. X               flashToNetTime OBJECT-TYPE
  444. X                   SYNTAX  TimeTicks
  445. X                   ACCESS  read-only
  446. X                   STATUS  mandatory
  447. X                   DESCRIPTION
  448. X                           "Last time a copy from the net to the flash
  449. X                           took place"
  450. X                   ::= { lflash 10 }
  451. X
  452. X               flashToNetStatus OBJECT-TYPE
  453. X                   SYNTAX  INTEGER
  454. X                   ACCESS  read-only
  455. X                   STATUS  mandatory
  456. X                   DESCRIPTION
  457. X                           "Status of current or last flash to net
  458. X                           transfer"
  459. X                   ::= { lflash 11 }
  460. X
  461. X               netToFlash OBJECT-TYPE
  462. X                   SYNTAX  DisplayString
  463. X
  464. X
  465. X
  466. X
  467. X
  468. X          -- cisco MIB                                         [Page 74]
  469. X--
  470. X
  471. X
  472. X
  473. X
  474. X
  475. X          -- Request for Comments: Draft             cisco Systems, Inc.
  476. X
  477. X
  478. X                   ACCESS  write-only
  479. X                   STATUS  mandatory
  480. X                   DESCRIPTION
  481. X                           "Write flash entry from tftp server. Value
  482. X                           should be the name of the flash entry to
  483. X                           write. Instance is the IP address of the tftp
  484. X                           host."
  485. X                   ::= { lflash 12 }
  486. X
  487. X               netToFlashTime OBJECT-TYPE
  488. X                   SYNTAX  TimeTicks
  489. X                   ACCESS  read-only
  490. X                   STATUS  mandatory
  491. X                   DESCRIPTION
  492. X                           "Last time a copy from the net to the flash
  493. X                           took place"
  494. X                   ::= { lflash 13 }
  495. X
  496. X               netToFlashStatus OBJECT-TYPE
  497. X                   SYNTAX  INTEGER
  498. X                   ACCESS  read-only
  499. X                   STATUS  mandatory
  500. X                   DESCRIPTION
  501. X                           "Status of current or last net to flash
  502. X                           transfer"
  503. X                   ::= { lflash 14 }
  504. X
  505. X               flashStatus OBJECT-TYPE
  506. X                   SYNTAX  INTEGER
  507. X                   ACCESS  read-only
  508. X                   STATUS  mandatory
  509. X                   DESCRIPTION
  510. X                           "Status of the availablity of flash"
  511. X                   ::= { lflash 15 }
  512. X
  513. X               flashEntries OBJECT-TYPE
  514. X                   SYNTAX  INTEGER
  515. X                   ACCESS  read-only
  516. X                   STATUS  mandatory
  517. X                   DESCRIPTION
  518. X                           "Number of entries in the flash directory"
  519. X                   ::= { lflash 16 }
  520. X
  521. X
  522. X               -- Local Flash file Table
  523. X
  524. X
  525. X
  526. X
  527. X
  528. X          -- cisco MIB                                         [Page 75]
  529. X--
  530. X
  531. X
  532. X
  533. X
  534. X
  535. X          -- Request for Comments: Draft             cisco Systems, Inc.
  536. X
  537. X
  538. X          -- This group contains information on a per file basis
  539. X
  540. X               lflashFileDirTable OBJECT-TYPE
  541. X                   SYNTAX  SEQUENCE OF LFlashFileDirEntry
  542. X                   ACCESS  not-accessible
  543. X                   STATUS  mandatory
  544. X                   DESCRIPTION
  545. X                            " A list of flash file entries."
  546. X                   ::= { lflash 17 }
  547. X
  548. X               lflashFileDirEntry OBJECT-TYPE
  549. X                   SYNTAX LFlashFileDirEntry
  550. X                   ACCESS  not-accessible
  551. X                   STATUS  mandatory
  552. X                   DESCRIPTION
  553. X                            "A collection of flash eprom objects"
  554. X                   INDEX { flashEntries }
  555. X               ::= { lflashFileDirTable 1 }
  556. X
  557. X               LFlashFileDirEntry ::=
  558. X                   SEQUENCE {
  559. X                       flashDirName
  560. X                           DisplayString,
  561. X                       flashDirSize
  562. X                           INTEGER,
  563. X                       flashDirStatus
  564. X                           INTEGER
  565. X                   }
  566. X
  567. X
  568. X          -- The following section describes the components of the
  569. X          -- table.
  570. X
  571. X               flashDirName OBJECT-TYPE
  572. X                   SYNTAX  DisplayString
  573. X                   ACCESS  read-only
  574. X                   STATUS  mandatory
  575. X                   DESCRIPTION
  576. X                           "Name associated with the flash entry"
  577. X                   ::= { lflashFileDirEntry 1 }
  578. X
  579. X               flashDirSize OBJECT-TYPE
  580. X                   SYNTAX  INTEGER
  581. X                   ACCESS  read-only
  582. X                   STATUS  mandatory
  583. X
  584. X
  585. X
  586. X
  587. X
  588. X          -- cisco MIB                                         [Page 76]
  589. X--
  590. X
  591. X
  592. X
  593. X
  594. X
  595. X          -- Request for Comments: Draft             cisco Systems, Inc.
  596. X
  597. X
  598. X                   DESCRIPTION
  599. X                           "Size in Octets of a flash entry"
  600. X                   ::= { lflashFileDirEntry 2 }
  601. X
  602. X               flashDirStatus OBJECT-TYPE
  603. X                   SYNTAX  INTEGER {
  604. X                        valid(1),
  605. X                        deleted(2)
  606. X                   }
  607. X                   ACCESS  read-only
  608. X                   STATUS  mandatory
  609. X                   DESCRIPTION
  610. X                           "Indicates the status of the entry"
  611. X                   ::= { lflashFileDirEntry 3 }
  612. X
  613. X               -- End of table
  614. X
  615. X
  616. X
  617. X               -- Temporary Variable Section
  618. X
  619. X          -- This section is equivalent to the experimental
  620. X          -- space defined by the SMI. It contains variables
  621. X          -- that are useful to have but are beyond cisco's
  622. X          -- ability to control and maintain. This section can
  623. X          -- change from release to release without warning.
  624. X          -- This document controls what is contained here for
  625. X          -- this version.
  626. X
  627. X
  628. X          -- Temporary DECNET Section
  629. X
  630. X          -- This group is present in all router based products.
  631. X
  632. X               dnForward OBJECT-TYPE
  633. X                   SYNTAX  INTEGER
  634. X                   ACCESS  read-only
  635. X                   STATUS  mandatory
  636. X                   DESCRIPTION
  637. X                           "Total count of DECNET packets forwarded."
  638. X                   ::= { decnet 1 }
  639. X
  640. X               dnReceived OBJECT-TYPE
  641. X                   SYNTAX  INTEGER
  642. X                   ACCESS  read-only
  643. X
  644. X
  645. X
  646. X
  647. X
  648. X          -- cisco MIB                                         [Page 77]
  649. X--
  650. X
  651. X
  652. X
  653. X
  654. X
  655. X          -- Request for Comments: Draft             cisco Systems, Inc.
  656. X
  657. X
  658. X                   STATUS  mandatory
  659. X                   DESCRIPTION
  660. X                           "Count of total DECNET packets received."
  661. X                   ::= { decnet 2 }
  662. X
  663. X               dnFormaterr OBJECT-TYPE
  664. X                   SYNTAX  INTEGER
  665. X                   ACCESS  read-only
  666. X                   STATUS  mandatory
  667. X                   DESCRIPTION
  668. X                           "Total number of DECNET packets received with
  669. X                           header errors."
  670. X                   ::= { decnet 3 }
  671. X
  672. X               dnNotgateway OBJECT-TYPE
  673. X                   SYNTAX  INTEGER
  674. X                   ACCESS  read-only
  675. X                   STATUS  mandatory
  676. X                   DESCRIPTION
  677. X                           "Total number of packets received while not
  678. X                           routing."
  679. X                   ::= { decnet 4 }
  680. X
  681. X               dnNotimp OBJECT-TYPE
  682. X                   SYNTAX  INTEGER
  683. X                   ACCESS  read-only
  684. X                   STATUS  mandatory
  685. X                   DESCRIPTION
  686. X                           "Total number of unknown control packets
  687. X                           received."
  688. X                   ::= { decnet 5 }
  689. X
  690. X               dnHellos OBJECT-TYPE
  691. X                   SYNTAX  INTEGER
  692. X                   ACCESS  read-only
  693. X                   STATUS  mandatory
  694. X                   DESCRIPTION
  695. X                           "Total number of Hellos received."
  696. X                   ::= { decnet 6 }
  697. X
  698. X               dnBadhello OBJECT-TYPE
  699. X                   SYNTAX  INTEGER
  700. X                   ACCESS  read-only
  701. X                   STATUS  mandatory
  702. X                   DESCRIPTION
  703. X
  704. X
  705. X
  706. X
  707. X
  708. X          -- cisco MIB                                         [Page 78]
  709. X--
  710. X
  711. X
  712. X
  713. X
  714. X
  715. X          -- Request for Comments: Draft             cisco Systems, Inc.
  716. X
  717. X
  718. X                           "Total number of received bad Hellos."
  719. X                   ::= { decnet 7 }
  720. X
  721. X               dnNotlong OBJECT-TYPE
  722. X                   SYNTAX  INTEGER
  723. X                   ACCESS  read-only
  724. X                   STATUS  mandatory
  725. X                   DESCRIPTION
  726. X                           "Total number of received packets not in long
  727. X                           format."
  728. X                   ::= { decnet 8 }
  729. X
  730. X               dnDatas OBJECT-TYPE
  731. X                   SYNTAX  INTEGER
  732. X                   ACCESS  read-only
  733. X                   STATUS  mandatory
  734. X                   DESCRIPTION
  735. X                           "Total number of received data packets."
  736. X                   ::= { decnet 9 }
  737. X
  738. X               dnBigaddr OBJECT-TYPE
  739. X                   SYNTAX  INTEGER
  740. X                   ACCESS  read-only
  741. X                   STATUS  mandatory
  742. X                   DESCRIPTION
  743. X                           "Total number of too large addresses."
  744. X                   ::= { decnet 10 }
  745. X
  746. X               dnNoroute OBJECT-TYPE
  747. X                   SYNTAX  INTEGER
  748. X                   ACCESS  read-only
  749. X                   STATUS  mandatory
  750. X                   DESCRIPTION
  751. X                           "Total number of packets dropped due to no
  752. X                           route present."
  753. X                   ::= { decnet 11 }
  754. X
  755. X               dnNoencap OBJECT-TYPE
  756. X                   SYNTAX  INTEGER
  757. X                   ACCESS  read-only
  758. X                   STATUS  mandatory
  759. X                   DESCRIPTION
  760. X                           "Total number of packets dropped due to
  761. X                           output encapsulation failure."
  762. X                   ::= { decnet 12 }
  763. X
  764. X
  765. X
  766. X
  767. X
  768. X          -- cisco MIB                                         [Page 79]
  769. X--
  770. X
  771. X
  772. X
  773. X
  774. X
  775. X          -- Request for Comments: Draft             cisco Systems, Inc.
  776. X
  777. X
  778. X               dnLevel1s OBJECT-TYPE
  779. X                   SYNTAX  INTEGER
  780. X                   ACCESS  read-only
  781. X                   STATUS  mandatory
  782. X                   DESCRIPTION
  783. X                           "Total number of Level 1 routing packets
  784. X                           received."
  785. X                   ::= { decnet 13 }
  786. X
  787. X               dnBadlevel1 OBJECT-TYPE
  788. X                   SYNTAX  INTEGER
  789. X                   ACCESS  read-only
  790. X                   STATUS  mandatory
  791. X                   DESCRIPTION
  792. X                           "Total number of bad Level 1 routing packets
  793. X                           received."
  794. X                   ::= { decnet 14 }
  795. X
  796. X               dnToomanyhops OBJECT-TYPE
  797. X                   SYNTAX  INTEGER
  798. X                   ACCESS  read-only
  799. X                   STATUS  mandatory
  800. X                   DESCRIPTION
  801. X                           "Total number of packets received which
  802. X                           visited too many nodes."
  803. X                   ::= { decnet 15 }
  804. X
  805. X               dnHellosent OBJECT-TYPE
  806. X                   SYNTAX  INTEGER
  807. X                   ACCESS  read-only
  808. X                   STATUS  mandatory
  809. X                   DESCRIPTION
  810. X                           "Total number of Hellos output."
  811. X                   ::= { decnet 16 }
  812. X
  813. X               dnLevel1sent OBJECT-TYPE
  814. X                   SYNTAX  INTEGER
  815. X                   ACCESS  read-only
  816. X                   STATUS  mandatory
  817. X                   DESCRIPTION
  818. X                           "Total number of Level 1 routing packets
  819. X                           sent."
  820. X                   ::= { decnet 17 }
  821. X
  822. X               dnNomemory OBJECT-TYPE
  823. X
  824. X
  825. X
  826. X
  827. X
  828. X          -- cisco MIB                                         [Page 80]
  829. X--
  830. X
  831. X
  832. X
  833. X
  834. X
  835. X          -- Request for Comments: Draft             cisco Systems, Inc.
  836. X
  837. X
  838. X                   SYNTAX  INTEGER
  839. X                   ACCESS  read-only
  840. X                   STATUS  mandatory
  841. X                   DESCRIPTION
  842. X                           "Total number of memory requests denied."
  843. X                   ::= { decnet 18 }
  844. X
  845. X               dnOtherhello OBJECT-TYPE
  846. X                   SYNTAX  INTEGER
  847. X                   ACCESS  read-only
  848. X                   STATUS  mandatory
  849. X                   DESCRIPTION
  850. X                           "Total number of Hellos received from another
  851. X                           area."
  852. X                   ::= { decnet 19 }
  853. X
  854. X               dnOtherlevel1 OBJECT-TYPE
  855. X                   SYNTAX  INTEGER
  856. X                   ACCESS  read-only
  857. X                   STATUS  mandatory
  858. X                   DESCRIPTION
  859. X                           "Total number of Level 1 routing packets
  860. X                           received from another area."
  861. X                   ::= { decnet 20 }
  862. X
  863. X               dnLevel2s OBJECT-TYPE
  864. X                   SYNTAX  INTEGER
  865. X                   ACCESS  read-only
  866. X                   STATUS  mandatory
  867. X                   DESCRIPTION
  868. X                           "Total number of Level 2 routing packets
  869. X                           received."
  870. X                   ::= { decnet 21 }
  871. X
  872. X               dnLevel2sent OBJECT-TYPE
  873. X                   SYNTAX  INTEGER
  874. X                   ACCESS  read-only
  875. X                   STATUS  mandatory
  876. X                   DESCRIPTION
  877. X                           "Total number of Level 2 routing packets
  878. X                           sent."
  879. X                   ::= { decnet 22 }
  880. X
  881. X               dnNovector OBJECT-TYPE
  882. X                   SYNTAX  INTEGER
  883. X
  884. X
  885. X
  886. X
  887. X
  888. X          -- cisco MIB                                         [Page 81]
  889. X--
  890. X
  891. X
  892. X
  893. X
  894. X
  895. X          -- Request for Comments: Draft             cisco Systems, Inc.
  896. X
  897. X
  898. X                   ACCESS  read-only
  899. X                   STATUS  mandatory
  900. X                   DESCRIPTION
  901. X                           "Total number of missing routing vectors."
  902. X                   ::= { decnet 23 }
  903. X
  904. X               dnOtherlevel2 OBJECT-TYPE
  905. X                   SYNTAX  INTEGER
  906. X                   ACCESS  read-only
  907. X                   STATUS  mandatory
  908. X                   DESCRIPTION
  909. X                           "Total number of received Level 2 routing
  910. X                           packets from another area."
  911. X                   ::= { decnet 24 }
  912. X
  913. X               dnNoaccess OBJECT-TYPE
  914. X                   SYNTAX  INTEGER
  915. X                   ACCESS  read-only
  916. X                   STATUS  mandatory
  917. X                   DESCRIPTION
  918. X                           "Total number of packets dropped due to
  919. X                           access control failure."
  920. X                   ::= { decnet 25 }
  921. X
  922. X               dnAreaTable OBJECT-TYPE
  923. X                   SYNTAX  SEQUENCE OF DnAreaTableEntry
  924. X                   ACCESS  not-accessible
  925. X                   STATUS  mandatory
  926. X                   DESCRIPTION
  927. X                            "DECNET area routing table"
  928. X                   ::= { decnet 26 }
  929. X
  930. X               dnAreaTableEntry OBJECT-TYPE
  931. X                   SYNTAX DnAreaTableEntry
  932. X                   ACCESS  not-accessible
  933. X                   STATUS  mandatory
  934. X                   DESCRIPTION
  935. X                            "DECNET area routing table"
  936. X                   INDEX { dnArea }
  937. X               ::= { dnAreaTable 1 }
  938. X
  939. X               DnAreaTableEntry ::=
  940. X                   SEQUENCE {
  941. X                       dnArea
  942. X                           INTEGER,
  943. X
  944. X
  945. X
  946. X
  947. X
  948. X          -- cisco MIB                                         [Page 82]
  949. X--
  950. X
  951. X
  952. X
  953. X
  954. X
  955. X          -- Request for Comments: Draft             cisco Systems, Inc.
  956. X
  957. X
  958. X                       dnACost
  959. X                           INTEGER,
  960. X                       dnAHop
  961. X                           INTEGER,
  962. X                       dnAIfIndex
  963. X                           INTEGER,
  964. X                       dnANextHop
  965. X                           OCTET STRING,
  966. X                       dnAAge
  967. X                           INTEGER,
  968. X                       dnAPrio
  969. X                           INTEGER
  970. X                   }
  971. X
  972. X
  973. X          -- The following section describes the components of the
  974. X          -- table.
  975. X
  976. X               dnArea OBJECT-TYPE
  977. X                   SYNTAX  INTEGER
  978. X                   ACCESS  read-only
  979. X                   STATUS  mandatory
  980. X                   DESCRIPTION
  981. X                           "DECNet area from the area table."
  982. X                   ::= { dnAreaTableEntry 1 }
  983. X
  984. X               dnACost OBJECT-TYPE
  985. X                   SYNTAX  INTEGER
  986. X                   ACCESS  read-only
  987. X                   STATUS  mandatory
  988. X                   DESCRIPTION
  989. X                           "Cost of area in the area table."
  990. X                   ::= { dnAreaTableEntry 2 }
  991. X
  992. X               dnAHop OBJECT-TYPE
  993. X                   SYNTAX  INTEGER
  994. X                   ACCESS  read-only
  995. X                   STATUS  mandatory
  996. X                   DESCRIPTION
  997. X                           "Number of hops to area in the area table."
  998. X                   ::= { dnAreaTableEntry 3 }
  999. X
  1000. X               dnAIfIndex OBJECT-TYPE
  1001. X                   SYNTAX  INTEGER
  1002. X                   ACCESS  read-only
  1003. X
  1004. X
  1005. X
  1006. X
  1007. X
  1008. X          -- cisco MIB                                         [Page 83]
  1009. X--
  1010. X
  1011. X
  1012. X
  1013. X
  1014. X
  1015. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1016. X
  1017. X
  1018. X                   STATUS  mandatory
  1019. X                   DESCRIPTION
  1020. X                           "Index of interface to the next hop address
  1021. X                           to the area. 0 denotes self."
  1022. X                   ::= { dnAreaTableEntry 4 }
  1023. X
  1024. X               dnANextHop OBJECT-TYPE
  1025. X                   SYNTAX  OCTET STRING
  1026. X                   ACCESS  read-only
  1027. X                   STATUS  mandatory
  1028. X                   DESCRIPTION
  1029. X                           "Next hop DECNet address."
  1030. X                   ::= { dnAreaTableEntry 5 }
  1031. X
  1032. X               dnAAge OBJECT-TYPE
  1033. X                   SYNTAX  INTEGER
  1034. X                   ACCESS  read-only
  1035. X                   STATUS  mandatory
  1036. X                   DESCRIPTION
  1037. X                           "Age in seconds of area route."
  1038. X                   ::= { dnAreaTableEntry 6 }
  1039. X
  1040. X               dnAPrio OBJECT-TYPE
  1041. X                   SYNTAX  INTEGER
  1042. X                   ACCESS  read-only
  1043. X                   STATUS  mandatory
  1044. X                   DESCRIPTION
  1045. X                           "Priority of next hop router for area route."
  1046. X                   ::= { dnAreaTableEntry 7 }
  1047. X
  1048. X               -- End of table
  1049. X
  1050. X
  1051. X               dnHostTable OBJECT-TYPE
  1052. X                   SYNTAX  SEQUENCE OF DnHostTableEntry
  1053. X                   ACCESS  not-accessible
  1054. X                   STATUS  mandatory
  1055. X                   DESCRIPTION
  1056. X                            "DECNET routing table"
  1057. X                   ::= { decnet 27 }
  1058. X
  1059. X               dnHostTableEntry OBJECT-TYPE
  1060. X                   SYNTAX DnHostTableEntry
  1061. X                   ACCESS  not-accessible
  1062. X                   STATUS  mandatory
  1063. X
  1064. X
  1065. X
  1066. X
  1067. X
  1068. X          -- cisco MIB                                         [Page 84]
  1069. X--
  1070. X
  1071. X
  1072. X
  1073. X
  1074. X
  1075. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1076. X
  1077. X
  1078. X                   DESCRIPTION
  1079. X                            "DECNET routing table"
  1080. X                   INDEX { INTEGER, INTEGER }
  1081. X               ::= { dnHostTable 1 }
  1082. X
  1083. X               DnHostTableEntry ::=
  1084. X                   SEQUENCE {
  1085. X                       dnHost
  1086. X                           INTEGER,
  1087. X                       dnHCost
  1088. X                           INTEGER,
  1089. X                       dnHHop
  1090. X                           INTEGER,
  1091. X                       dnHIfIndex
  1092. X                           INTEGER,
  1093. X                       dnHNextHop
  1094. X                           OCTET STRING,
  1095. X                       dnHAge
  1096. X                           INTEGER,
  1097. X                       dnHPrio
  1098. X                           INTEGER
  1099. X                   }
  1100. X
  1101. X
  1102. X          -- The following section describes the components of the
  1103. X          -- table.
  1104. X
  1105. X               dnHost OBJECT-TYPE
  1106. X                   SYNTAX  INTEGER
  1107. X                   ACCESS  read-only
  1108. X                   STATUS  mandatory
  1109. X                   DESCRIPTION
  1110. X                           "DECNet node address from the routing table."
  1111. X                   ::= { dnHostTableEntry 1 }
  1112. X
  1113. X               dnHCost OBJECT-TYPE
  1114. X                   SYNTAX  INTEGER
  1115. X                   ACCESS  read-only
  1116. X                   STATUS  mandatory
  1117. X                   DESCRIPTION
  1118. X                           "Cost of path to node in the routing table."
  1119. X                   ::= { dnHostTableEntry 2 }
  1120. X
  1121. X               dnHHop OBJECT-TYPE
  1122. X                   SYNTAX  INTEGER
  1123. X
  1124. X
  1125. X
  1126. X
  1127. X
  1128. X          -- cisco MIB                                         [Page 85]
  1129. X--
  1130. X
  1131. X
  1132. X
  1133. X
  1134. X
  1135. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1136. X
  1137. X
  1138. X                   ACCESS  read-only
  1139. X                   STATUS  mandatory
  1140. X                   DESCRIPTION
  1141. X                           "Number of hops to node in the routing
  1142. X                           table."
  1143. X                   ::= { dnHostTableEntry 3 }
  1144. X
  1145. X               dnHIfIndex OBJECT-TYPE
  1146. X                   SYNTAX  INTEGER
  1147. X                   ACCESS  read-only
  1148. X                   STATUS  mandatory
  1149. X                   DESCRIPTION
  1150. X                           "Index of interface to the next hop address
  1151. X                           to the node. 0 denotes self."
  1152. X                   ::= { dnHostTableEntry 4 }
  1153. X
  1154. X               dnHNextHop OBJECT-TYPE
  1155. X                   SYNTAX  OCTET STRING
  1156. X                   ACCESS  read-only
  1157. X                   STATUS  mandatory
  1158. X                   DESCRIPTION
  1159. X                           "Next hop DECNet address."
  1160. X                   ::= { dnHostTableEntry 5 }
  1161. X
  1162. X               dnHAge OBJECT-TYPE
  1163. X                   SYNTAX  INTEGER
  1164. X                   ACCESS  read-only
  1165. X                   STATUS  mandatory
  1166. X                   DESCRIPTION
  1167. X                           "Age in seconds of route to node."
  1168. X                   ::= { dnHostTableEntry 6 }
  1169. X
  1170. X               dnHPrio OBJECT-TYPE
  1171. X                   SYNTAX  INTEGER
  1172. X                   ACCESS  read-only
  1173. X                   STATUS  mandatory
  1174. X                   DESCRIPTION
  1175. X                           "Priority of next hop router for node."
  1176. X                   ::= { dnHostTableEntry 7 }
  1177. X
  1178. X               -- End of table
  1179. X
  1180. X
  1181. X               dnIfTable OBJECT-TYPE
  1182. X                   SYNTAX  SEQUENCE OF DnIfTableEntry
  1183. X
  1184. X
  1185. X
  1186. X
  1187. X
  1188. X          -- cisco MIB                                         [Page 86]
  1189. X--
  1190. X
  1191. X
  1192. X
  1193. X
  1194. X
  1195. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1196. X
  1197. X
  1198. X                   ACCESS  not-accessible
  1199. X                   STATUS  mandatory
  1200. X                   DESCRIPTION
  1201. X                            "DECNET interface table"
  1202. X                   ::= { decnet 28 }
  1203. X
  1204. X               dnIfTableEntry OBJECT-TYPE
  1205. X                   SYNTAX DnIfTableEntry
  1206. X                   ACCESS  not-accessible
  1207. X                   STATUS  mandatory
  1208. X                   DESCRIPTION
  1209. X                            "DECNET interface table"
  1210. X                   INDEX { ifIndex }
  1211. X               ::= { dnIfTable 1 }
  1212. X
  1213. X               DnIfTableEntry ::=
  1214. X                   SEQUENCE {
  1215. X                       dnIfCost
  1216. X                           INTEGER
  1217. X                   }
  1218. X
  1219. X
  1220. X          -- The following section describes the components of the
  1221. X          -- table.
  1222. X
  1223. X               dnIfCost OBJECT-TYPE
  1224. X                   SYNTAX  INTEGER
  1225. X                   ACCESS  read-only
  1226. X                   STATUS  mandatory
  1227. X                   DESCRIPTION
  1228. X                           "Cost of this interface."
  1229. X                   ::= { dnIfTableEntry 1 }
  1230. X
  1231. X               -- End of table
  1232. X
  1233. X
  1234. X
  1235. X               -- Temporary XNS Section
  1236. X
  1237. X          -- This group is present in all router based products.
  1238. X
  1239. X               xnsInput OBJECT-TYPE
  1240. X                   SYNTAX  INTEGER
  1241. X                   ACCESS  read-only
  1242. X                   STATUS  mandatory
  1243. X
  1244. X
  1245. X
  1246. X
  1247. X
  1248. X          -- cisco MIB                                         [Page 87]
  1249. X--
  1250. X
  1251. X
  1252. X
  1253. X
  1254. X
  1255. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1256. X
  1257. X
  1258. X                   DESCRIPTION
  1259. X                           "Total input count of number of XNS packets."
  1260. X                   ::= { xns 1 }
  1261. X
  1262. X               xnsLocal OBJECT-TYPE
  1263. X                   SYNTAX  INTEGER
  1264. X                   ACCESS  read-only
  1265. X                   STATUS  mandatory
  1266. X                   DESCRIPTION
  1267. X                           "Total count of XNS input packets for this
  1268. X                           host."
  1269. X                   ::= { xns 2 }
  1270. X
  1271. X               xnsBcastin OBJECT-TYPE
  1272. X                   SYNTAX  INTEGER
  1273. X                   ACCESS  read-only
  1274. X                   STATUS  mandatory
  1275. X                   DESCRIPTION
  1276. X                           "Total count of number of XNS input broadcast
  1277. X                           packets."
  1278. X                   ::= { xns 3 }
  1279. X
  1280. X               xnsForward OBJECT-TYPE
  1281. X                   SYNTAX  INTEGER
  1282. X                   ACCESS  read-only
  1283. X                   STATUS  mandatory
  1284. X                   DESCRIPTION
  1285. X                           "Total count of number of XNS packets
  1286. X                           forwarded."
  1287. X                   ::= { xns 4 }
  1288. X
  1289. X               xnsBcastout OBJECT-TYPE
  1290. X                   SYNTAX  INTEGER
  1291. X                   ACCESS  read-only
  1292. X                   STATUS  mandatory
  1293. X                   DESCRIPTION
  1294. X                           "Total count of number of XNS output
  1295. X                           broadcast packets."
  1296. X                   ::= { xns 5 }
  1297. X
  1298. X               xnsErrin OBJECT-TYPE
  1299. X                   SYNTAX  INTEGER
  1300. X                   ACCESS  read-only
  1301. X                   STATUS  mandatory
  1302. X                   DESCRIPTION
  1303. X
  1304. X
  1305. X
  1306. X
  1307. X
  1308. X          -- cisco MIB                                         [Page 88]
  1309. X--
  1310. X
  1311. X
  1312. X
  1313. X
  1314. X
  1315. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1316. X
  1317. X
  1318. X                           "Total count of number of XNS Error input
  1319. X                           packets."
  1320. X                   ::= { xns 6 }
  1321. X
  1322. X               xnsErrout OBJECT-TYPE
  1323. X                   SYNTAX  INTEGER
  1324. X                   ACCESS  read-only
  1325. X                   STATUS  mandatory
  1326. X                   DESCRIPTION
  1327. X                           "Total count of number of XNS Error output
  1328. X                           packets."
  1329. X                   ::= { xns 7 }
  1330. X
  1331. X               xnsFormerr OBJECT-TYPE
  1332. X                   SYNTAX  INTEGER
  1333. X                   ACCESS  read-only
  1334. X                   STATUS  mandatory
  1335. X                   DESCRIPTION
  1336. X                           "Total count of number of XNS input packets
  1337. X                           with header errors."
  1338. X                   ::= { xns 8 }
  1339. X
  1340. X               xnsChksum OBJECT-TYPE
  1341. X                   SYNTAX  INTEGER
  1342. X                   ACCESS  read-only
  1343. X                   STATUS  mandatory
  1344. X                   DESCRIPTION
  1345. X                           "Total count of number of XNS input packets
  1346. X                           with checksum errors."
  1347. X                   ::= { xns 9 }
  1348. X
  1349. X               xnsNotgate OBJECT-TYPE
  1350. X                   SYNTAX  INTEGER
  1351. X                   ACCESS  read-only
  1352. X                   STATUS  mandatory
  1353. X                   DESCRIPTION
  1354. X                           "Total count of number of XNS input packets
  1355. X                           received while not routing."
  1356. X                   ::= { xns 10 }
  1357. X
  1358. X               xnsHopcnt OBJECT-TYPE
  1359. X                   SYNTAX  INTEGER
  1360. X                   ACCESS  read-only
  1361. X                   STATUS  mandatory
  1362. X                   DESCRIPTION
  1363. X
  1364. X
  1365. X
  1366. X
  1367. X
  1368. X          -- cisco MIB                                         [Page 89]
  1369. X--
  1370. X
  1371. X
  1372. X
  1373. X
  1374. X
  1375. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1376. X
  1377. X
  1378. X                           "Total count of number of XNS input packets
  1379. X                           that have exceeded the maximum hop count."
  1380. X                   ::= { xns 11 }
  1381. X
  1382. X               xnsNoroute OBJECT-TYPE
  1383. X                   SYNTAX  INTEGER
  1384. X                   ACCESS  read-only
  1385. X                   STATUS  mandatory
  1386. X                   DESCRIPTION
  1387. X                           "Total count of number of XNS packets dropped
  1388. X                           due to no route."
  1389. X                   ::= { xns 12 }
  1390. X
  1391. X               xnsNoencap OBJECT-TYPE
  1392. X                   SYNTAX  INTEGER
  1393. X                   ACCESS  read-only
  1394. X                   STATUS  mandatory
  1395. X                   DESCRIPTION
  1396. X                           "Total count of number of XNS packets dropped
  1397. X                           due to output encapsulation failure."
  1398. X                   ::= { xns 13 }
  1399. X
  1400. X               xnsOutput OBJECT-TYPE
  1401. X                   SYNTAX  INTEGER
  1402. X                   ACCESS  read-only
  1403. X                   STATUS  mandatory
  1404. X                   DESCRIPTION
  1405. X                           "Total count of number of XNS output
  1406. X                           packets."
  1407. X                   ::= { xns 14 }
  1408. X
  1409. X               xnsInmult OBJECT-TYPE
  1410. X                   SYNTAX  INTEGER
  1411. X                   ACCESS  read-only
  1412. X                   STATUS  mandatory
  1413. X                   DESCRIPTION
  1414. X                           "Total count of number of XNS input multicast
  1415. X                           packets."
  1416. X                   ::= { xns 15 }
  1417. X
  1418. X               xnsUnknown OBJECT-TYPE
  1419. X                   SYNTAX  INTEGER
  1420. X                   ACCESS  read-only
  1421. X                   STATUS  mandatory
  1422. X                   DESCRIPTION
  1423. X
  1424. X
  1425. X
  1426. X
  1427. X
  1428. X          -- cisco MIB                                         [Page 90]
  1429. X--
  1430. X
  1431. X
  1432. X
  1433. X
  1434. X
  1435. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1436. X
  1437. X
  1438. X                           "Total count of number of unknown XNS input
  1439. X                           packets."
  1440. X                   ::= { xns 16 }
  1441. X
  1442. X               xnsFwdbrd OBJECT-TYPE
  1443. X                   SYNTAX  INTEGER
  1444. X                   ACCESS  read-only
  1445. X                   STATUS  mandatory
  1446. X                   DESCRIPTION
  1447. X                           "Total count of number of XNS broadcast
  1448. X                           packets forwarded."
  1449. X                   ::= { xns 17 }
  1450. X
  1451. X               xnsEchoreqin OBJECT-TYPE
  1452. X                   SYNTAX  INTEGER
  1453. X                   ACCESS  read-only
  1454. X                   STATUS  mandatory
  1455. X                   DESCRIPTION
  1456. X                           "Total count of number of XNS Echo request
  1457. X                           packets received."
  1458. X                   ::= { xns 18 }
  1459. X
  1460. X               xnsEchoreqout OBJECT-TYPE
  1461. X                   SYNTAX  INTEGER
  1462. X                   ACCESS  read-only
  1463. X                   STATUS  mandatory
  1464. X                   DESCRIPTION
  1465. X                           "Total count of number of XNS Echo request
  1466. X                           packets sent."
  1467. X                   ::= { xns 19 }
  1468. X
  1469. X               xnsEchorepin OBJECT-TYPE
  1470. X                   SYNTAX  INTEGER
  1471. X                   ACCESS  read-only
  1472. X                   STATUS  mandatory
  1473. X                   DESCRIPTION
  1474. X                           "Total count of number of XNS Echo reply
  1475. X                           packets received."
  1476. X                   ::= { xns 20 }
  1477. X
  1478. X               xnsEchorepout OBJECT-TYPE
  1479. X                   SYNTAX  INTEGER
  1480. X                   ACCESS  read-only
  1481. X                   STATUS  mandatory
  1482. X                   DESCRIPTION
  1483. X
  1484. X
  1485. X
  1486. X
  1487. X
  1488. X          -- cisco MIB                                         [Page 91]
  1489. X--
  1490. X
  1491. X
  1492. X
  1493. X
  1494. X
  1495. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1496. X
  1497. X
  1498. X                           "Total count of number of XNS Echo reply
  1499. X                           packets sent."
  1500. X                   ::= { xns 21 }
  1501. X
  1502. X
  1503. X               -- Temporary AppleTalk Section
  1504. X
  1505. X          -- This group is present in all router based products.
  1506. X
  1507. X               atInput OBJECT-TYPE
  1508. X                   SYNTAX  INTEGER
  1509. X                   ACCESS  read-only
  1510. X                   STATUS  mandatory
  1511. X                   DESCRIPTION
  1512. X                           "Total input count of number of AppleTalk
  1513. X                           packets."
  1514. X                   ::= { appletalk 1 }
  1515. X
  1516. X               atLocal OBJECT-TYPE
  1517. X                   SYNTAX  INTEGER
  1518. X                   ACCESS  read-only
  1519. X                   STATUS  mandatory
  1520. X                   DESCRIPTION
  1521. X                           "Total count of AppleTalk input packets for
  1522. X                           this host."
  1523. X                   ::= { appletalk 2 }
  1524. X
  1525. X               atBcastin OBJECT-TYPE
  1526. X                   SYNTAX  INTEGER
  1527. X                   ACCESS  read-only
  1528. X                   STATUS  mandatory
  1529. X                   DESCRIPTION
  1530. X                           "Total count of number of AppleTalk input
  1531. X                           broadcast packets."
  1532. X                   ::= { appletalk 3 }
  1533. X
  1534. X               atForward OBJECT-TYPE
  1535. X                   SYNTAX  INTEGER
  1536. X                   ACCESS  read-only
  1537. X                   STATUS  mandatory
  1538. X                   DESCRIPTION
  1539. X                           "Total count of number of AppleTalk packets
  1540. X                           forwarded."
  1541. X                   ::= { appletalk 4 }
  1542. X
  1543. X
  1544. X
  1545. X
  1546. X
  1547. X
  1548. X          -- cisco MIB                                         [Page 92]
  1549. X--
  1550. X
  1551. X
  1552. X
  1553. X
  1554. X
  1555. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1556. X
  1557. X
  1558. X               atBcastout OBJECT-TYPE
  1559. X                   SYNTAX  INTEGER
  1560. X                   ACCESS  read-only
  1561. X                   STATUS  mandatory
  1562. X                   DESCRIPTION
  1563. X                           "Total count of number of AppleTalk output
  1564. X                           broadcast packets."
  1565. X                   ::= { appletalk 5 }
  1566. X
  1567. X               atChksum OBJECT-TYPE
  1568. X                   SYNTAX  INTEGER
  1569. X                   ACCESS  read-only
  1570. X                   STATUS  mandatory
  1571. X                   DESCRIPTION
  1572. X                           "Total count of number of AppleTalk input
  1573. X                           packets with checksum erors."
  1574. X                   ::= { appletalk 7 }
  1575. X
  1576. X               atNotgate OBJECT-TYPE
  1577. X                   SYNTAX  INTEGER
  1578. X                   ACCESS  read-only
  1579. X                   STATUS  mandatory
  1580. X                   DESCRIPTION
  1581. X                           "Total count of AppleTalk input packets
  1582. X                           received while not routing."
  1583. X                   ::= { appletalk 8 }
  1584. X
  1585. X               atHopcnt OBJECT-TYPE
  1586. X                   SYNTAX  INTEGER
  1587. X                   ACCESS  read-only
  1588. X                   STATUS  mandatory
  1589. X                   DESCRIPTION
  1590. X                           "Total count of number of AppleTalk input
  1591. X                           packets that have exceeded the maximum hop
  1592. X                           count."
  1593. X                   ::= { appletalk 9 }
  1594. X
  1595. X               atNoaccess OBJECT-TYPE
  1596. X                   SYNTAX  INTEGER
  1597. X                   ACCESS  read-only
  1598. X                   STATUS  mandatory
  1599. X                   DESCRIPTION
  1600. X                           "Total number of AppleTalk packets dropped
  1601. X                           due to access control."
  1602. X                   ::= { appletalk 10 }
  1603. X
  1604. X
  1605. X
  1606. X
  1607. X
  1608. X          -- cisco MIB                                         [Page 93]
  1609. X--
  1610. X
  1611. X
  1612. X
  1613. X
  1614. X
  1615. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1616. X
  1617. X
  1618. X               atNoroute OBJECT-TYPE
  1619. X                   SYNTAX  INTEGER
  1620. X                   ACCESS  read-only
  1621. X                   STATUS  mandatory
  1622. X                   DESCRIPTION
  1623. X                           "Total count of number of AppleTalk packets
  1624. X                           dropped due to no route."
  1625. X                   ::= { appletalk 11 }
  1626. X
  1627. X               atNoencap OBJECT-TYPE
  1628. X                   SYNTAX  INTEGER
  1629. X                   ACCESS  read-only
  1630. X                   STATUS  mandatory
  1631. X                   DESCRIPTION
  1632. X                           "Total count of number of AppleTalk packets
  1633. X                           dropped due to output encapsulation failure."
  1634. X                   ::= { appletalk 12 }
  1635. X
  1636. X               atOutput OBJECT-TYPE
  1637. X                   SYNTAX  INTEGER
  1638. X                   ACCESS  read-only
  1639. X                   STATUS  mandatory
  1640. X                   DESCRIPTION
  1641. X                           "Total count of number of AppleTalk output
  1642. X                           packets."
  1643. X                   ::= { appletalk 13 }
  1644. X
  1645. X               atInmult OBJECT-TYPE
  1646. X                   SYNTAX  INTEGER
  1647. X                   ACCESS  read-only
  1648. X                   STATUS  mandatory
  1649. X                   DESCRIPTION
  1650. X                           "Total count of number of AppleTalk input
  1651. X                           multicast packets."
  1652. X                   ::= { appletalk 14 }
  1653. X
  1654. X               atRtmpin OBJECT-TYPE
  1655. X                   SYNTAX  INTEGER
  1656. X                   ACCESS  read-only
  1657. X                   STATUS  mandatory
  1658. X                   DESCRIPTION
  1659. X                           "Total count of number of AppleTalk RTMP
  1660. X                           packets received."
  1661. X                   ::= { appletalk 15 }
  1662. X
  1663. X
  1664. X
  1665. X
  1666. X
  1667. X
  1668. X          -- cisco MIB                                         [Page 94]
  1669. X--
  1670. X
  1671. X
  1672. X
  1673. X
  1674. X
  1675. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1676. X
  1677. X
  1678. X               atRtmpout OBJECT-TYPE
  1679. X                   SYNTAX  INTEGER
  1680. X                   ACCESS  read-only
  1681. X                   STATUS  mandatory
  1682. X                   DESCRIPTION
  1683. X                           "Total count of number of AppleTalk RTMP
  1684. X                           packets sent."
  1685. X                   ::= { appletalk 16 }
  1686. X
  1687. X               atNbpin OBJECT-TYPE
  1688. X                   SYNTAX  INTEGER
  1689. X                   ACCESS  read-only
  1690. X                   STATUS  mandatory
  1691. X                   DESCRIPTION
  1692. X                           "Total count of number of AppleTalk NBP
  1693. X                           packets received."
  1694. X                   ::= { appletalk 17 }
  1695. X
  1696. X               atNbpout OBJECT-TYPE
  1697. X                   SYNTAX  INTEGER
  1698. X                   ACCESS  read-only
  1699. X                   STATUS  mandatory
  1700. X                   DESCRIPTION
  1701. X                           "Total count of number of AppleTalk NBP
  1702. X                           packets sent."
  1703. X                   ::= { appletalk 18 }
  1704. X
  1705. X               atAtp OBJECT-TYPE
  1706. X                   SYNTAX  INTEGER
  1707. X                   ACCESS  read-only
  1708. X                   STATUS  mandatory
  1709. X                   DESCRIPTION
  1710. X                           "Total count of number of AppleTalk ATP
  1711. X                           packets received."
  1712. X                   ::= { appletalk 19 }
  1713. X
  1714. X               atZipin OBJECT-TYPE
  1715. X                   SYNTAX  INTEGER
  1716. X                   ACCESS  read-only
  1717. X                   STATUS  mandatory
  1718. X                   DESCRIPTION
  1719. X                           "Total count of number of AppleTalk ZIP
  1720. X                           packets received."
  1721. X                   ::= { appletalk 20 }
  1722. X
  1723. X
  1724. X
  1725. X
  1726. X
  1727. X
  1728. X          -- cisco MIB                                         [Page 95]
  1729. X--
  1730. X
  1731. X
  1732. X
  1733. X
  1734. X
  1735. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1736. X
  1737. X
  1738. X               atZipout OBJECT-TYPE
  1739. X                   SYNTAX  INTEGER
  1740. X                   ACCESS  read-only
  1741. X                   STATUS  mandatory
  1742. X                   DESCRIPTION
  1743. X                           "Total count of number of AppleTalk ZIP
  1744. X                           packets sent."
  1745. X                   ::= { appletalk 21 }
  1746. X
  1747. X               atEcho OBJECT-TYPE
  1748. X                   SYNTAX  INTEGER
  1749. X                   ACCESS  read-only
  1750. X                   STATUS  mandatory
  1751. X                   DESCRIPTION
  1752. X                           "Total count of number of AppleTalk Echo
  1753. X                           packets received."
  1754. X                   ::= { appletalk 22 }
  1755. X
  1756. X               atEchoill OBJECT-TYPE
  1757. X                   SYNTAX  INTEGER
  1758. X                   ACCESS  read-only
  1759. X                   STATUS  mandatory
  1760. X                   DESCRIPTION
  1761. X                           "Total count of number of illegal AppleTalk
  1762. X                           Echo packets received."
  1763. X                   ::= { appletalk 23 }
  1764. X
  1765. X               atDdpshort OBJECT-TYPE
  1766. X                   SYNTAX  INTEGER
  1767. X                   ACCESS  read-only
  1768. X                   STATUS  mandatory
  1769. X                   DESCRIPTION
  1770. X                           "Total count of number of short AppleTalk DDP
  1771. X                           packets received."
  1772. X                   ::= { appletalk 24 }
  1773. X
  1774. X               atDdplong OBJECT-TYPE
  1775. X                   SYNTAX  INTEGER
  1776. X                   ACCESS  read-only
  1777. X                   STATUS  mandatory
  1778. X                   DESCRIPTION
  1779. X                           "Total count of number of long AppleTalk DDP
  1780. X                           packets received."
  1781. X                   ::= { appletalk 25 }
  1782. X
  1783. X
  1784. X
  1785. X
  1786. X
  1787. X
  1788. X          -- cisco MIB                                         [Page 96]
  1789. X--
  1790. X
  1791. X
  1792. X
  1793. X
  1794. X
  1795. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1796. X
  1797. X
  1798. X               atDdpbad OBJECT-TYPE
  1799. X                   SYNTAX  INTEGER
  1800. X                   ACCESS  read-only
  1801. X                   STATUS  mandatory
  1802. X                   DESCRIPTION
  1803. X                           "Total count of number of illegal sized
  1804. X                           AppleTalk DDP packets received."
  1805. X                   ::= { appletalk 26 }
  1806. X
  1807. X               atNobuffer OBJECT-TYPE
  1808. X                   SYNTAX  INTEGER
  1809. X                   ACCESS  read-only
  1810. X                   STATUS  mandatory
  1811. X                   DESCRIPTION
  1812. X                           "Total count of number of AppleTalk packets
  1813. X                           lost due to no memory."
  1814. X                   ::= { appletalk 27 }
  1815. X
  1816. X               atArpreq OBJECT-TYPE
  1817. X                   SYNTAX  INTEGER
  1818. X                   ACCESS  read-only
  1819. X                   STATUS  mandatory
  1820. X                   DESCRIPTION
  1821. X                           "Total count of number of input AppleTalk ARP
  1822. X                           request packets."
  1823. X                   ::= { appletalk 28 }
  1824. X
  1825. X               atArpreply OBJECT-TYPE
  1826. X                   SYNTAX  INTEGER
  1827. X                   ACCESS  read-only
  1828. X                   STATUS  mandatory
  1829. X                   DESCRIPTION
  1830. X                           "Total count of number of AppleTalk ARP reply
  1831. X                           packets output."
  1832. X                   ::= { appletalk 29 }
  1833. X
  1834. X               atArpprobe OBJECT-TYPE
  1835. X                   SYNTAX  INTEGER
  1836. X                   ACCESS  read-only
  1837. X                   STATUS  mandatory
  1838. X                   DESCRIPTION
  1839. X                           "Total count of number of input AppleTalk ARP
  1840. X                           probe packets."
  1841. X                   ::= { appletalk 30 }
  1842. X
  1843. X
  1844. X
  1845. X
  1846. X
  1847. X
  1848. X          -- cisco MIB                                         [Page 97]
  1849. X--
  1850. X
  1851. X
  1852. X
  1853. X
  1854. X
  1855. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1856. X
  1857. X
  1858. X               atUnknown OBJECT-TYPE
  1859. X                   SYNTAX  INTEGER
  1860. X                   ACCESS  read-only
  1861. X                   STATUS  mandatory
  1862. X                   DESCRIPTION
  1863. X                           "Total count of number of unknown AppleTalk
  1864. X                           input packets."
  1865. X                   ::= { appletalk 31 }
  1866. X
  1867. X
  1868. X               -- Temporary Novell Section
  1869. X
  1870. X          -- This group is present in all router based products.
  1871. X
  1872. X               novellInput OBJECT-TYPE
  1873. X                   SYNTAX  INTEGER
  1874. X                   ACCESS  read-only
  1875. X                   STATUS  mandatory
  1876. X                   DESCRIPTION
  1877. X                           "Total input count of number of NOVELL
  1878. X                           packets."
  1879. X                   ::= { novell 1 }
  1880. X
  1881. X               novellBcastin OBJECT-TYPE
  1882. X                   SYNTAX  INTEGER
  1883. X                   ACCESS  read-only
  1884. X                   STATUS  mandatory
  1885. X                   DESCRIPTION
  1886. X                           "Total count of number of NOVELL input
  1887. X                           broadcast packets."
  1888. X                   ::= { novell 2 }
  1889. X
  1890. X               novellForward OBJECT-TYPE
  1891. X                   SYNTAX  INTEGER
  1892. X                   ACCESS  read-only
  1893. X                   STATUS  mandatory
  1894. X                   DESCRIPTION
  1895. X                           "Total count of number of NOVELL packets
  1896. X                           forwarded."
  1897. X                   ::= { novell 3 }
  1898. X
  1899. X               novellBcastout OBJECT-TYPE
  1900. X                   SYNTAX  INTEGER
  1901. X                   ACCESS  read-only
  1902. X                   STATUS  mandatory
  1903. X
  1904. X
  1905. X
  1906. X
  1907. X
  1908. X          -- cisco MIB                                         [Page 98]
  1909. X--
  1910. X
  1911. X
  1912. X
  1913. X
  1914. X
  1915. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1916. X
  1917. X
  1918. X                   DESCRIPTION
  1919. X                           "Total count of number of NOVELL output
  1920. X                           broadcast packets."
  1921. X                   ::= { novell 4 }
  1922. X
  1923. X               novellFormerr OBJECT-TYPE
  1924. X                   SYNTAX  INTEGER
  1925. X                   ACCESS  read-only
  1926. X                   STATUS  mandatory
  1927. X                   DESCRIPTION
  1928. X                           "Total count of number of NOVELL input
  1929. X                           packets with header errors."
  1930. X                   ::= { novell 5 }
  1931. X
  1932. X               novellChksum OBJECT-TYPE
  1933. X                   SYNTAX  INTEGER
  1934. X                   ACCESS  read-only
  1935. X                   STATUS  mandatory
  1936. X                   DESCRIPTION
  1937. X                           "Total count of number of NOVELL input
  1938. X                           packets with checksum erors."
  1939. X                   ::= { novell 6 }
  1940. X
  1941. X               novellHopcnt OBJECT-TYPE
  1942. X                   SYNTAX  INTEGER
  1943. X                   ACCESS  read-only
  1944. X                   STATUS  mandatory
  1945. X                   DESCRIPTION
  1946. X                           "Total count of number of NOVELL input
  1947. X                           packets that have exceeded the maximum hop
  1948. X                           count."
  1949. X                   ::= { novell 7 }
  1950. X
  1951. X               novellNoroute OBJECT-TYPE
  1952. X                   SYNTAX  INTEGER
  1953. X                   ACCESS  read-only
  1954. X                   STATUS  mandatory
  1955. X                   DESCRIPTION
  1956. X                           "Total count of number of NOVELL packets
  1957. X                           dropped due to no route."
  1958. X                   ::= { novell 8 }
  1959. X
  1960. X               novellNoencap OBJECT-TYPE
  1961. X                   SYNTAX  INTEGER
  1962. X                   ACCESS  read-only
  1963. X
  1964. X
  1965. X
  1966. X
  1967. X
  1968. X          -- cisco MIB                                         [Page 99]
  1969. X--
  1970. X
  1971. X
  1972. X
  1973. X
  1974. X
  1975. X          -- Request for Comments: Draft             cisco Systems, Inc.
  1976. X
  1977. X
  1978. X                   STATUS  mandatory
  1979. X                   DESCRIPTION
  1980. X                           "Total count of number of NOVELL packets
  1981. X                           dropped due to output encapsulation failure."
  1982. X                   ::= { novell 9 }
  1983. X
  1984. X               novellOutput OBJECT-TYPE
  1985. X                   SYNTAX  INTEGER
  1986. X                   ACCESS  read-only
  1987. X                   STATUS  mandatory
  1988. X                   DESCRIPTION
  1989. X                           "Total count of number of NOVELL output
  1990. X                           packets."
  1991. X                   ::= { novell 10 }
  1992. X
  1993. X               novellInmult OBJECT-TYPE
  1994. X                   SYNTAX  INTEGER
  1995. X                   ACCESS  read-only
  1996. X                   STATUS  mandatory
  1997. X                   DESCRIPTION
  1998. X                           "Total count of number of NOVELL input
  1999. X                           multicast packets."
  2000. X                   ::= { novell 11 }
  2001. X
  2002. X               novellLocal OBJECT-TYPE
  2003. X                   SYNTAX  INTEGER
  2004. X                   ACCESS  read-only
  2005. X                   STATUS  mandatory
  2006. X                   DESCRIPTION
  2007. X                           "Total count of NOVELL input packets for this
  2008. X                           host."
  2009. X                   ::= { novell 12 }
  2010. X
  2011. X               novellUnknown OBJECT-TYPE
  2012. X                   SYNTAX  INTEGER
  2013. X                   ACCESS  read-only
  2014. X                   STATUS  mandatory
  2015. X                   DESCRIPTION
  2016. X                           "Total count of number of unknown NOVELL
  2017. X                           input packets."
  2018. X                   ::= { novell 13 }
  2019. X
  2020. X               novellSapreqin OBJECT-TYPE
  2021. X                   SYNTAX  INTEGER
  2022. X                   ACCESS  read-only
  2023. X
  2024. X
  2025. X
  2026. X
  2027. X
  2028. X          -- cisco MIB                                        [Page 100]
  2029. X--
  2030. X
  2031. END_OF_FILE
  2032.   if test 59063 -ne `wc -c <'nocol-3.0/src/cmu-snmp/cisco.mib91.C'`; then
  2033.     echo shar: \"'nocol-3.0/src/cmu-snmp/cisco.mib91.C'\" unpacked with wrong size!
  2034.   elif test -f 'nocol-3.0/src/cmu-snmp/cisco.mib91.A' && test -f 'nocol-3.0/src/cmu-snmp/cisco.mib91.B' && test -f 'nocol-3.0/src/cmu-snmp/cisco.mib91.D'; then
  2035.     echo shar: Combining  \"'nocol-3.0/src/cmu-snmp/cisco.mib91'\" \(190589 characters\)
  2036.     cat 'nocol-3.0/src/cmu-snmp/cisco.mib91.A' 'nocol-3.0/src/cmu-snmp/cisco.mib91.B' 'nocol-3.0/src/cmu-snmp/cisco.mib91.C' 'nocol-3.0/src/cmu-snmp/cisco.mib91.D' > 'nocol-3.0/src/cmu-snmp/cisco.mib91'
  2037.     if test 190589 -ne `wc -c <'nocol-3.0/src/cmu-snmp/cisco.mib91'`; then
  2038.       echo shar: \"'nocol-3.0/src/cmu-snmp/cisco.mib91'\" combined with wrong size!
  2039.     else
  2040.       rm nocol-3.0/src/cmu-snmp/cisco.mib91.A nocol-3.0/src/cmu-snmp/cisco.mib91.B nocol-3.0/src/cmu-snmp/cisco.mib91.C nocol-3.0/src/cmu-snmp/cisco.mib91.D
  2041.     fi
  2042.   fi
  2043.   # end of 'nocol-3.0/src/cmu-snmp/cisco.mib91.C'
  2044. fi
  2045. if test -f 'nocol-3.0/src/support/mping/mping.c' -a "${1}" != "-c" ; then 
  2046.   echo shar: Will not clobber existing file \"'nocol-3.0/src/support/mping/mping.c'\"
  2047. else
  2048.   echo shar: Extracting \"'nocol-3.0/src/support/mping/mping.c'\" \(13960 characters\)
  2049.   sed "s/^X//" >'nocol-3.0/src/support/mping/mping.c' <<'END_OF_FILE'
  2050. X/*
  2051. X * mping -- parallel ping
  2052. X */
  2053. X
  2054. X#include <stdio.h>
  2055. X#include <sys/time.h>
  2056. X#include <signal.h>
  2057. X#include <sys/types.h>
  2058. X#include <sys/socket.h>
  2059. X#include <netinet/in_systm.h>
  2060. X#include <netinet/in.h>
  2061. X#include <netinet/ip.h>
  2062. X#include <netinet/ip_icmp.h>
  2063. X#include <arpa/inet.h>
  2064. X#include <stdlib.h>
  2065. X#include <netdb.h>
  2066. X#include <string.h>
  2067. X
  2068. X/* Design
  2069. X *
  2070. X * This reads a configuration file (or stdin) and gets a list of nodes
  2071. X * to ping, together with options for packet size and retry count.
  2072. X *
  2073. X * It pings all these in parallel until the entire list is satisfied
  2074. X * or all retry counts are exhausted.
  2075. X *
  2076. X * We do this by setting an interval timer for the basic inter-packet
  2077. X * interval and keeping a process clock.  Every time a system is ready
  2078. X * to be sent a packet, we wait for the next process clock interval
  2079. X * (to avoid overloading the network).
  2080. X */
  2081. X
  2082. Xstruct plist {
  2083. X    struct plist*    next;
  2084. X    char        name[32];
  2085. X    struct sockaddr_in target;
  2086. X    unsigned long    nextSend;    /* virtual clock time for next send */
  2087. X    int        timeOut;    /* inter-packet transmit interval */
  2088. X    int        numRetries;    /* # of retries to make */
  2089. X    int        numTried;    /* # sent on this ping */
  2090. X    int        numToSend;    /* # of successful returns req'd */
  2091. X    int        numSent;    /* # of packets sent */
  2092. X    int        numReceived;    /* # of responses received */
  2093. X    int        dataPattern;    /* what to fill packet with */
  2094. X    int        status;
  2095. X#define STS_WAITING    0x0        /* waiting for response or next turn */
  2096. X#define STS_DONE    0x1        /* success or timeout */
  2097. X#define STS_READY    0x2        /* waiting to ping */
  2098. X#define STS_ACTIVE    0x3        /* pinging */
  2099. X    int        pktSize;
  2100. X    char*        packet;
  2101. X    unsigned long    pktTimes;    /* total microseconds of packet RTT */ };
  2102. X
  2103. X/* This defines, in milliseconds, the basic inter-packet interval we
  2104. X * want to maintain for the parallel pings.  This ignores round-off
  2105. X * problems with the system clock.
  2106. X */
  2107. X#define TICK    50            /* milliseconds per TICK */
  2108. X#define INV_TICK    (1000/TICK)    /* TICKs per second */
  2109. X#define RETRY_TIME    (1000/TICK)    /* 1 second retry interval */
  2110. Xchar*    createPacket();
  2111. X
  2112. X/* Defaults for optional arguments */
  2113. Xint    dflt_size    =   56;    /* 56 bytes of ICMP packet data */
  2114. Xint    dflt_retries    =    5;    /* make 5 attempts before quitting */
  2115. Xint    dflt_toSend    =    1;    /* quit on 1 successful return */
  2116. Xint    dflt_pattern    =    0;    /* packet data pattern */
  2117. Xint    dflt_timeOut    = 1000;    /* in milliseconds */
  2118. X
  2119. X/* Minima for optional arguments */
  2120. Xint    min_data_size    = sizeof (struct timeval) + sizeof(short);
  2121. Xint    min_timeOut    = 100;    /* milliseconds */
  2122. X
  2123. Xstruct plist*    sendq;        /* targets ready to send */
  2124. Xstruct plist*    plist_array;    /* all configured targets */
  2125. Xint    num_plist;        /* count of configured targets */
  2126. Xint    siz_plist;        /* count of allocated plist structs */
  2127. Xint    num_active;        /* number of targets still active */
  2128. X
  2129. X/* The socket handle */
  2130. Xint    pingSocket;
  2131. Xint    verbose;
  2132. Xint    icmp_ident;
  2133. X
  2134. X#define HUNK    64
  2135. X#define FOREACHPLIST(P,I) \
  2136. X    for((P)=plist_array,(I)=0; (I)<num_plist; (I)++,(P)++)
  2137. X
  2138. Xextern int    errno;
  2139. Xextern int    sys_nerr;
  2140. Xextern char*    sys_errlist[];
  2141. X#define STRERROR    (errno>=sys_nerr ? "unknown" : sys_errlist[errno])
  2142. X
  2143. X/* return pointer to newly-allocated plist */
  2144. Xstatic struct plist*
  2145. Xnew_plist() {
  2146. X    unsigned nbytes;
  2147. X    unsigned oldsize;
  2148. X    if (num_plist >= siz_plist) {
  2149. X        oldsize = siz_plist;
  2150. X        siz_plist += HUNK;
  2151. X        nbytes = siz_plist * sizeof (struct plist);
  2152. X        plist_array = (struct plist*) (plist_array
  2153. X            ? realloc (plist_array, nbytes)
  2154. X            : malloc (nbytes));
  2155. X
  2156. X        /* clear the new space */
  2157. X        bzero ((char*)&plist_array[oldsize], HUNK*sizeof(struct plist));
  2158. X    }
  2159. X    return &plist_array[num_plist++];
  2160. X}
  2161. X
  2162. Xadd_plist_byTime (head, item)
  2163. Xstruct plist** head;
  2164. Xstruct plist* item;
  2165. X{
  2166. X    register struct plist** q;
  2167. X    register struct plist* p;
  2168. X
  2169. X    for (q = head; p = *q; q = & (*q)->next)
  2170. X        if (p->nextSend > item->nextSend)
  2171. X            break;
  2172. X
  2173. X    item->next = p;
  2174. X    *q = item;
  2175. X}
  2176. X
  2177. Xstruct plist*
  2178. Xget_plist (q)
  2179. Xstruct plist**q;
  2180. X{
  2181. X    struct plist* p;
  2182. X    if ((p = *q) != 0) {
  2183. X        *q = p->next;
  2184. X        p->next = 0;
  2185. X    }
  2186. X    return p;
  2187. X}
  2188. X    
  2189. X
  2190. XreadConfig (stream)
  2191. XFILE*    stream;
  2192. X{
  2193. X    char buf[512];
  2194. X    char *vec[10];
  2195. X    char *ovec[6];
  2196. X    struct plist* p;
  2197. X    int nf, no;
  2198. X
  2199. X    /* name address size retries */
  2200. X    while (fgets(buf, sizeof buf, stream)) {
  2201. X        if (buf[0] == '#' || buf[0]== '\n')
  2202. X            continue;
  2203. X        nf = strsplit (buf, vec, 10, 0);
  2204. X        if (nf < 2)
  2205. X            continue;
  2206. X        p = new_plist();
  2207. X        strncpy (p->name, vec[0], sizeof p->name);
  2208. X
  2209. X        p->pktSize = dflt_size;
  2210. X        p->numRetries = dflt_retries;
  2211. X        p->dataPattern = dflt_pattern;
  2212. X        p->numToSend = dflt_toSend;
  2213. X        p->timeOut = dflt_timeOut/TICK;
  2214. X        p->numTried = 0;
  2215. X        if (nf >= 3) {
  2216. X            bzero (ovec, sizeof ovec);
  2217. X            no = strsplit (vec[2], ovec, 6, ",");
  2218. X            if (ovec[0]) p->pktSize = atoi(ovec[0]);
  2219. X            if (p->pktSize < min_data_size)
  2220. X                p->pktSize = min_data_size;
  2221. X
  2222. X            if (ovec[1]) p->dataPattern = strtol (ovec[1],0,16);
  2223. X            if (ovec[2]) p->numToSend = atoi (ovec[2]);
  2224. X            if (p->numToSend <= 0)
  2225. X                p->numToSend = dflt_toSend;
  2226. X
  2227. X            if (ovec[3]) p->numRetries = atoi (ovec[3]);
  2228. X            if (p->numRetries <= 0)
  2229. X                p->numRetries = dflt_retries;
  2230. X
  2231. X            if (ovec[4]) p->timeOut = atoi (ovec[4])/TICK;
  2232. X            if (p->timeOut <= min_timeOut/TICK)
  2233. X                p->timeOut = min_timeOut/TICK;
  2234. X        }
  2235. X        p->packet = (char*)createPacket (p->pktSize, p->dataPattern);
  2236. X        p->target.sin_family = AF_INET;
  2237. X
  2238. X        /* If the 2nd argument isn't an address, look it up.
  2239. X         * clone the entry for each address.
  2240. X         */
  2241. X        p->target.sin_addr.s_addr = inet_addr (vec[1]);
  2242. X        if (p->target.sin_addr.s_addr == 0xffffffff) {
  2243. X            struct hostent *hp;
  2244. X            struct plist* p2;
  2245. X            char** addrp;
  2246. X
  2247. X            if ((hp = gethostbyname (vec[1])) == 0)
  2248. X                continue;
  2249. X
  2250. X            addrp = hp->h_addr_list;
  2251. X            p2 = p;
  2252. X            while (*addrp) {
  2253. X                if (p2 == 0) {
  2254. X                    p2 = new_plist();
  2255. X                    *p2 = *p;
  2256. X                }
  2257. X                bcopy (*addrp, (caddr_t)&p->target.sin_addr,
  2258. X                    hp->h_length);
  2259. X                p2 = 0;
  2260. X                addrp++;
  2261. X            }
  2262. X        }
  2263. X    }
  2264. X}
  2265. X
  2266. X
  2267. X/* Dump out the config file for debugging */
  2268. Xvoid
  2269. XprintConfig ()
  2270. X{
  2271. X    register struct plist* p;
  2272. X    register i;
  2273. X
  2274. X    FOREACHPLIST(p,i) {
  2275. X        printf ("plist[%d]: addr=%s; retry=%d; size=%d\n",
  2276. X            i, inet_ntoa(p->target.sin_addr),
  2277. X            p->numRetries, p->pktSize);
  2278. X    }
  2279. X}
  2280. X
  2281. X
  2282. X
  2283. X
  2284. Xstruct timeval clock_interval = { 0, TICK*1000 };
  2285. X
  2286. Xstatic unsigned long clock_value;
  2287. Xstatic void clockService()
  2288. X{
  2289. X    clock_value++;
  2290. X}
  2291. X
  2292. XstartTimer()
  2293. X{
  2294. X    struct itimerval tim;
  2295. X    signal (SIGALRM, clockService);
  2296. X
  2297. X    tim.it_interval = clock_interval;
  2298. X    tim.it_value = clock_interval;
  2299. X    setitimer (ITIMER_REAL, &tim, (int*)0);
  2300. X}
  2301. X
  2302. XstopTimer()
  2303. X{
  2304. X    struct timeval zero;
  2305. X    struct itimerval tim;
  2306. X
  2307. X    zero.tv_sec = 0;
  2308. X    zero.tv_usec = 0;
  2309. X    tim.it_interval = zero;
  2310. X    tim.it_value = zero;
  2311. X    setitimer (ITIMER_REAL, &tim, (int*)0);
  2312. X}
  2313. X
  2314. Xmain(argc, argv)
  2315. Xint    argc;
  2316. Xchar**    argv;
  2317. X{
  2318. X    FILE* configf = stdin;
  2319. X    struct plist* target;
  2320. X
  2321. X#define EQ(S)    (strcmp((S),*argv)==0)
  2322. X    for (argc--,argv++; argc > 0; argc--, argv++) {
  2323. X        if (EQ("-f")) {
  2324. X            configf = fopen(argv[1], "r");
  2325. X        }
  2326. X        if (EQ("-v")) {
  2327. X            verbose++;
  2328. X        }
  2329. X    }
  2330. X#undef EQ
  2331. X
  2332. X    /* Read configuration.  Allocate plist structures and everything
  2333. X     * else necessary to ping all the targets.
  2334. X     *
  2335. X     * Cycle through the list pinging each one until satisfied or
  2336. X     * retry limit exceeded.
  2337. X     *
  2338. X     * Print results to standard output.
  2339. X     */
  2340. X    readConfig (configf);
  2341. X    pingSocket = initSocket();
  2342. X    startTimer();
  2343. X    readPause();
  2344. X    while (num_active > 0) {
  2345. X        if (sendq == 0) {
  2346. X            readPause();
  2347. X            continue;
  2348. X        }
  2349. X        target = get_plist(&sendq);
  2350. X        target->status = STS_ACTIVE;
  2351. X        sendPing (target, target-plist_array);
  2352. X    }
  2353. X    stopTimer();
  2354. X
  2355. X    printStatus();
  2356. X}
  2357. X
  2358. XsendPing (target, index)
  2359. Xstruct plist* target;
  2360. Xint    index;
  2361. X{
  2362. X    static lastSent;
  2363. X    int pktlen;
  2364. X    int i;
  2365. X
  2366. X    if (target->numTried >= target->numRetries
  2367. X        || target->numReceived >= target->numToSend) {
  2368. X        target->status = STS_DONE;
  2369. X        return 0;
  2370. X    }
  2371. X
  2372. X    /* make sure at least 1 tick has elapsed since last packet
  2373. X     * transmitted.
  2374. X     */
  2375. X    while (clock_value <= lastSent)
  2376. X        readPause();
  2377. X
  2378. X    target->numSent++;
  2379. X    target->numTried++;
  2380. X    target->nextSend = clock_value + target->timeOut;
  2381. X    lastSent = clock_value;
  2382. X    
  2383. X    initPacket (target, index);
  2384. X    if (verbose) {
  2385. X        printf ("ping %-15s %d (%d/%d of %d/%d)\n",
  2386. X            inet_ntoa(target->target.sin_addr),
  2387. X            target->pktSize,
  2388. X            target->numTried, target->numRetries,
  2389. X            target->numSent, target->numReceived);
  2390. X    }
  2391. X    pktlen = target->pktSize + ICMP_MINLEN;
  2392. X    i = sendto (pingSocket, target->packet, pktlen, 0,
  2393. X            &target->target, sizeof (struct sockaddr));
  2394. X    if (i < 0) {
  2395. X        fprintf (stderr, "sendto: %s\n", STRERROR);
  2396. X        target->status = STS_DONE;
  2397. X    }
  2398. X    else
  2399. X        target->status = STS_WAITING;
  2400. X}
  2401. X
  2402. XreadPause()
  2403. X{
  2404. X    register struct plist* p;
  2405. X    register int i;
  2406. X    unsigned long old_clock = clock_value;
  2407. X    struct sockaddr_in from;
  2408. X    int fromlen ;
  2409. X    char pkt[4096];
  2410. X    int len = sizeof pkt;
  2411. X    fd_set fdmask;
  2412. X
  2413. X    /* This will block if nothing there */
  2414. X    for (;;) {
  2415. X        struct timeval timeout;
  2416. X        bzero (&fdmask, sizeof fdmask);
  2417. X        FD_SET(pingSocket, &fdmask);
  2418. X        timeout.tv_sec = 0; timeout.tv_usec = TICK*1000;
  2419. X        i = select (pingSocket+1,&fdmask,(int*)0,(int*)0,&timeout);
  2420. X        if (i > 0 && FD_ISSET(pingSocket, &fdmask)) {
  2421. X            fromlen = sizeof from;
  2422. X            i = recvfrom (pingSocket, pkt, len, 0, &from, &fromlen);
  2423. X            if (i < 0) {
  2424. X                fprintf ("recvfrom: %s\n", STRERROR);
  2425. X                break;
  2426. X            }
  2427. X            pr_pack (pkt, &from);
  2428. X        }
  2429. X        if (clock_value > old_clock)
  2430. X            break;
  2431. X    }
  2432. X
  2433. X    num_active = 0;
  2434. X    FOREACHPLIST(p,i) {
  2435. X        if (p->status == STS_DONE)
  2436. X            continue;
  2437. X        num_active++;
  2438. X        if (p->status == STS_WAITING && p->nextSend <= clock_value) {
  2439. X            p->status = STS_READY;
  2440. X            add_plist_byTime (&sendq, p);
  2441. X        }
  2442. X    }
  2443. X}
  2444. X
  2445. XprintStatus()
  2446. X{
  2447. X    register struct plist*p;
  2448. X    register i;
  2449. X    unsigned long rtt;
  2450. X
  2451. X    FOREACHPLIST (p,i) {
  2452. X        rtt = p->numReceived ? p->pktTimes/p->numReceived : 0;
  2453. X        printf ("%-24s %-15s %2d %2d %8lu\n", p->name,
  2454. X            inet_ntoa(p->target.sin_addr), p->numSent,
  2455. X            p->numReceived, rtt);
  2456. X    }
  2457. X}
  2458. X
  2459. X/* IP specific routines */
  2460. X
  2461. X
  2462. X/* The "size" argument here references the ICMP_DATA portion of the
  2463. X * packet.  We add to that the ICMP overhead.
  2464. X */
  2465. Xchar* createPacket (size)
  2466. Xint size;
  2467. X{
  2468. X    return malloc (size + ICMP_MINLEN);
  2469. X}
  2470. X
  2471. Xint initPacket (packet, i)
  2472. Xstruct plist* packet;
  2473. Xint    i;
  2474. X{
  2475. X    register struct icmp *icp = (struct icmp*) packet->packet;
  2476. X    u_short *usp;
  2477. X    struct timeval* tvp;
  2478. X    struct timezone tz;
  2479. X
  2480. X    icp->icmp_type = ICMP_ECHO;    
  2481. X    icp->icmp_code = 0;
  2482. X    icp->icmp_cksum = 0;
  2483. X    icp->icmp_seq = packet->numSent;
  2484. X
  2485. X    if (icmp_ident == 0)
  2486. X        icmp_ident = getpid() & 0xffff;
  2487. X    icp->icmp_id = icmp_ident;
  2488. X
  2489. X    /* fill packet with argument pattern */
  2490. X    memset (icp->icmp_data, packet->dataPattern, packet->pktSize);
  2491. X
  2492. X    tvp = (struct timeval*) icp->icmp_data;
  2493. X    gettimeofday (tvp, &tz);
  2494. X
  2495. X    /* store the index of this plist structure in the packet for
  2496. X     * fast lookup when it comes back.
  2497. X     */
  2498. X    usp = (u_short*) (icp->icmp_data + sizeof (struct timeval));
  2499. X    *usp = i;
  2500. X
  2501. X    icp->icmp_cksum = in_cksum ((u_short*)icp, packet->pktSize+ICMP_MINLEN);
  2502. X}
  2503. X
  2504. X/*
  2505. X *            I N _ C K S U M
  2506. X *
  2507. X * Checksum routine for Internet Protocol family headers (C Version)
  2508. X *
  2509. X */
  2510. Xin_cksum(addr, len)
  2511. Xu_short *addr;
  2512. Xint len;
  2513. X{
  2514. X    register int nleft = len;
  2515. X    register u_short *w = addr;
  2516. X    register int sum = 0;
  2517. X    u_short answer = 0;
  2518. X
  2519. X    /*
  2520. X     *  Our algorithm is simple, using a 32 bit accumulator (sum),
  2521. X     *  we add sequential 16 bit words to it, and at the end, fold
  2522. X     *  back all the carry bits from the top 16 bits into the lower
  2523. X     *  16 bits.
  2524. X     */
  2525. X    while( nleft > 1 )  {
  2526. X        sum += *w++;
  2527. X        nleft -= 2;
  2528. X    }
  2529. X
  2530. X    /* mop up an odd byte, if necessary */
  2531. X    if( nleft == 1 ) {
  2532. X        *(u_char *)(&answer) = *(u_char *)w ;
  2533. X        sum += answer;
  2534. X    }
  2535. X
  2536. X    /*
  2537. X     * add back carry outs from top 16 bits to low 16 bits
  2538. X     */
  2539. X    sum = (sum >> 16) + (sum & 0xffff);    /* add hi 16 to low 16 */
  2540. X    sum += (sum >> 16);            /* add carry */
  2541. X    answer = ~sum;                /* truncate to 16 bits */
  2542. X    return (answer);
  2543. X}
  2544. X
  2545. X/*
  2546. X *             T V S U B
  2547. X * 
  2548. X * Subtract 2 timeval structs:  out = out - in.
  2549. X * 
  2550. X * Out is assumed to be >= in.
  2551. X */
  2552. Xtvsub( out, in )
  2553. Xregister struct timeval *out, *in;
  2554. X{
  2555. X    if( (out->tv_usec -= in->tv_usec) < 0 )   {
  2556. X        out->tv_sec--;
  2557. X        out->tv_usec += 1000000;
  2558. X    }
  2559. X    out->tv_sec -= in->tv_sec;
  2560. X}
  2561. X
  2562. Xint
  2563. XinitSocket ()
  2564. X{
  2565. X    int s;
  2566. X    struct protoent* proto;
  2567. X
  2568. X    proto = (struct protoent*)getprotobyname("icmp");
  2569. X    s = socket (AF_INET, SOCK_RAW, proto->p_proto);
  2570. X    if (s < 0) {
  2571. X        fprintf (stderr, "Cannot create socket: %s\n", STRERROR);
  2572. X        exit (1);
  2573. X    }
  2574. X    return s;
  2575. X}
  2576. X
  2577. Xpr_pack (pkt, fromptr)
  2578. Xchar*    pkt;
  2579. Xstruct sockaddr_in *fromptr;
  2580. X{
  2581. X    struct icmp *icp;
  2582. X    struct ip * ipp;
  2583. X    register struct plist* p;
  2584. X    register int i;
  2585. X    struct timeval tv, *tvp;
  2586. X    struct timezone tz;
  2587. X    unsigned short *usp;
  2588. X    unsigned long rtt;
  2589. X
  2590. X    ipp = (struct ip*) pkt;
  2591. X    icp = (struct icmp*) (pkt + (ipp->ip_hl * 4));
  2592. X
  2593. X    /* discard stuff that's not ours */
  2594. X    if (icp->icmp_type != ICMP_ECHOREPLY || icp->icmp_id != icmp_ident) {
  2595. X        if (verbose)
  2596. X            printf ("%s -- %d,%d; not mine\n",
  2597. X                inet_ntoa(fromptr->sin_addr),
  2598. X                        icp->icmp_type, icp->icmp_id);
  2599. X        return;
  2600. X    }
  2601. X
  2602. X    gettimeofday (&tv, &tz);
  2603. X    tvp = (struct timeval*)icp->icmp_data;
  2604. X    /* need to calculate RTT */
  2605. X    tvsub (&tv, tvp);
  2606. X    rtt = (tv.tv_sec * 1000000) + tv.tv_usec;
  2607. X
  2608. X    /* See if it contains a valid index */
  2609. X    usp = (u_short*)(icp->icmp_data + sizeof (struct timeval));
  2610. X    i = *usp;
  2611. X    if (i >= 0 && i < num_plist) {
  2612. X        p = &plist_array[i];
  2613. X        if (p->target.sin_addr.s_addr == fromptr->sin_addr.s_addr) {
  2614. X     gotit:
  2615. X            p->numReceived++;
  2616. X            p->numTried = 0;
  2617. X            p->pktTimes += rtt;
  2618. X            if (p->numReceived >= p->numToSend)
  2619. X                p->status = STS_DONE;
  2620. X            return;
  2621. X        }
  2622. X    }
  2623. X
  2624. X    /* otherwise, walk through the list of eligibles looking
  2625. X     * for a match.
  2626. X     */
  2627. X    FOREACHPLIST(p,i) {
  2628. X        if (p->target.sin_addr.s_addr == fromptr->sin_addr.s_addr) {
  2629. X            goto gotit;
  2630. X        }
  2631. X    }
  2632. X    if (verbose) 
  2633. X        printf ("%s -- %d; not in list\n",
  2634. X            inet_ntoa(fromptr->sin_addr), icp->icmp_type);
  2635. X}
  2636. X
  2637. X/* A version of my strsplit function which uses the new
  2638. X * ANSI standard function 'strtok'.  This one doesn't
  2639. X * have the behavior of concatenating all remaining tokens
  2640. X * in the the last return when <nvec> is less than the
  2641. X * number of real <sep>-delimited fields.
  2642. X */
  2643. Xint
  2644. Xstrsplit (buf, vec, nvec, sep)
  2645. Xchar*    buf;
  2646. Xchar**    vec;
  2647. Xint    nvec;
  2648. Xchar*    sep;
  2649. X{
  2650. X    int n = 0;
  2651. X
  2652. X    if (sep == NULL) sep = " \t\r\n\f";
  2653. X
  2654. X    while (n < nvec) {
  2655. X        if ((vec[n] = strtok (buf, sep)) == NULL)
  2656. X            break;
  2657. X        if (n == 0) buf = NULL;
  2658. X        n++;
  2659. X    }
  2660. X
  2661. X    /* NULL-terminate pointer array if space permits */
  2662. X    if (n < nvec)
  2663. X        vec[n] = NULL;
  2664. X    return n;
  2665. X}
  2666. END_OF_FILE
  2667.   if test 13960 -ne `wc -c <'nocol-3.0/src/support/mping/mping.c'`; then
  2668.     echo shar: \"'nocol-3.0/src/support/mping/mping.c'\" unpacked with wrong size!
  2669.   fi
  2670.   # end of 'nocol-3.0/src/support/mping/mping.c'
  2671. fi
  2672. echo shar: End of archive 6 \(of 26\).
  2673. cp /dev/null ark6isdone
  2674. MISSING=""
  2675. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ; do
  2676.     if test ! -f ark${I}isdone ; then
  2677.     MISSING="${MISSING} ${I}"
  2678.     fi
  2679. done
  2680. if test "${MISSING}" = "" ; then
  2681.     echo You have unpacked all 26 archives.
  2682.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  2683. else
  2684.     echo You still must unpack the following archives:
  2685.     echo "        " ${MISSING}
  2686. fi
  2687. exit 0
  2688. exit 0 # Just in case...
  2689.