pib.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774
  1. /*====================================================================*
  2. *
  3. * Copyright (c) 2013 Qualcomm Atheros, Inc.
  4. *
  5. * All rights reserved.
  6. *
  7. *====================================================================*/
  8. /*====================================================================*
  9. *
  10. * pib.h - PIB version definitions and declarations;
  11. *
  12. * The PIB undergoes periodic revision as new features are added;
  13. * versions are distiguished from one another by the first two bytes;
  14. *
  15. * this file declares PIB header structure for PIBs released to
  16. * date; it does not define the position of all PIB information
  17. * because there must be some mystery to life;
  18. *
  19. * call function pibpeek() to display a buffer holding an unkown
  20. * PIB structure;
  21. *
  22. * Contributor(s):
  23. * Charles Maier <cmaier@qca.qualcomm.com>
  24. *
  25. *--------------------------------------------------------------------*/
  26. #ifndef PIB_HEADER
  27. #define PIB_HEADER
  28. /*====================================================================*
  29. * system header files;
  30. *--------------------------------------------------------------------*/
  31. #include <stdio.h>
  32. #include <stdint.h>
  33. #include <errno.h>
  34. #ifndef ETHER_ADDR_LEN
  35. #define ETHER_ADDR_LEN 6 /* normally defined in ethernet.h or if_ether.h */
  36. #endif
  37. /*====================================================================*
  38. * custom header files;
  39. *--------------------------------------------------------------------*/
  40. #include "../tools/types.h"
  41. #include "../tools/memory.h"
  42. #include "../key/HPAVKey.h"
  43. /*====================================================================*
  44. * constants;
  45. *--------------------------------------------------------------------*/
  46. #define PIB_NAME_LEN 32
  47. #define PIB_HFID_LEN 64
  48. #define PIB_TEXT_LEN 256
  49. #define PIB_KEY_LEN 16
  50. #define PIB_SILENCE (1 << 0)
  51. #define PIB_VERBOSE (1 << 1)
  52. #define PIB_MANIFEST (1 << 2)
  53. #define PIB_REVISION (1 << 3)
  54. #define PIB_MAC (1 << 4)
  55. #define PIB_MACINC (1 << 5)
  56. #define PIB_NMK (1 << 6)
  57. #define PIB_DAK (1 << 7)
  58. #define PIB_MFGSTRING (1 << 8)
  59. #define PIB_USER (1 << 9)
  60. #define PIB_NETWORK (1 << 10)
  61. #define PIB_CCO_MODE (1 << 11)
  62. #define PIB_NID (1 << 12)
  63. #define PIB_CHECKED (1 << 13)
  64. #define INT_PRESCALER_OFFSET 0x0A10
  65. #define INT_PRESCALER_LENGTH (INT_CARRIERS * sizeof (uint32_t))
  66. #define AMP_PRESCALER_OFFSET 0x0A30
  67. #define AMP_PRESCALER_LENGTH ((AMP_CARRIERS * 5) / sizeof (uint32_t))
  68. #define PLC_PRESCALER_OFFSET 0x0F2B
  69. #define PLC_PRESCALER_LENGTH (1345 / sizeof (uint32_t))
  70. #define INDEX_TO_FREQ(index) ((float)((index)+74)/40.96)
  71. #define FREQ_TO_INDEX(freq) ((unsigned)(40.96*(freq))-74)
  72. /*====================================================================*
  73. * standard PIB message formats;
  74. *--------------------------------------------------------------------*/
  75. #define PIB_BADVERSION "%s found bad PIB version in %s", __func__
  76. #define PIB_BADCONTENT "%s found wrong PIB content in %s", __func__
  77. #define PIB_BADLENGTH "%s found wrong PIB image length in %s", __func__
  78. #define PIB_BADCHECKSUM "%s found wrong PIB image checksum in %s", __func__
  79. #define PIB_BADNID "%s found wrong Preferred NID in %s", __func__
  80. /*====================================================================*
  81. * Basic PIB header;
  82. *--------------------------------------------------------------------*/
  83. #ifndef __GNUC__
  84. #pragma pack (push, 1)
  85. #endif
  86. typedef struct __packed pib_header
  87. {
  88. uint8_t FWVERSION;
  89. uint8_t PIBVERSION;
  90. uint16_t RESERVED1;
  91. uint16_t PIBLENGTH;
  92. uint16_t RESERVED2;
  93. uint32_t CHECKSUM;
  94. }
  95. pib_header;
  96. #ifndef __GNUC__
  97. #pragma pack (pop)
  98. #endif
  99. /*====================================================================*
  100. * As of PIB 1.4 a generic structure evolved; this is the start;
  101. *--------------------------------------------------------------------*/
  102. #ifndef __GNUC__
  103. #pragma pack (push, 1)
  104. #endif
  105. typedef struct __packed simple_pib
  106. {
  107. uint16_t PIBVERSION;
  108. uint16_t RESERVED1;
  109. uint16_t PIBLENGTH;
  110. uint16_t RESERVED2;
  111. uint32_t CHECKSUM;
  112. uint8_t MAC [ETHER_ADDR_LEN];
  113. uint8_t DAK [HPAVKEY_DAK_LEN];
  114. uint16_t RESERVED3;
  115. uint8_t MFG [PIB_HFID_LEN];
  116. uint8_t NMK [HPAVKEY_NMK_LEN];
  117. uint8_t USR [PIB_HFID_LEN];
  118. uint8_t NET [PIB_HFID_LEN];
  119. uint8_t CCoSelection;
  120. uint8_t CexistModeSelect;
  121. uint8_t PLFreqSelect;
  122. uint8_t RESERVED4;
  123. uint8_t PreferredNID [HPAVKEY_NID_LEN];
  124. uint8_t AutoFWUpgradeable;
  125. uint8_t MDUConfiguration;
  126. uint8_t MDURole;
  127. uint8_t RESERVED5 [10];
  128. uint8_t StaticNetworkConfiguration [128];
  129. uint8_t InterfaceConfiguration [64];
  130. }
  131. simple_pib;
  132. #ifndef __GNUC__
  133. #pragma pack (pop)
  134. #endif
  135. /*====================================================================*
  136. *
  137. *--------------------------------------------------------------------*/
  138. #ifndef __GNUC__
  139. #pragma pack (push, 1)
  140. #endif
  141. typedef struct __packed PIB1
  142. {
  143. uint8_t FWVersion;
  144. uint8_t PIBVersion;
  145. uint16_t Reserved1;
  146. uint16_t PIBLength;
  147. }
  148. PIB1;
  149. #ifndef __GNUC__
  150. #pragma pack (pop)
  151. #endif
  152. /*====================================================================*
  153. * PIB structure as of v1.2; this is deprecated;
  154. *--------------------------------------------------------------------*/
  155. #ifndef __GNUC__
  156. #pragma pack (push, 1)
  157. #endif
  158. typedef struct __packed PIB1_2
  159. {
  160. uint8_t FWVersion;
  161. uint8_t PIBVersion;
  162. uint16_t Reserved1;
  163. uint8_t DAK [HPAVKEY_DAK_LEN];
  164. uint8_t NMK [HPAVKEY_NMK_LEN];
  165. uint8_t MAC [ETHER_ADDR_LEN];
  166. uint32_t FLG;
  167. }
  168. PIB1_2;
  169. #ifndef __GNUC__
  170. #pragma pack (pop)
  171. #endif
  172. /*====================================================================*
  173. * PIB Structure as of v1.3; this is deprecated;
  174. *--------------------------------------------------------------------*/
  175. #ifndef __GNUC__
  176. #pragma pack (push, 1)
  177. #endif
  178. typedef struct __packed PIB1_3
  179. {
  180. uint8_t FWVersion;
  181. uint8_t PIBVersion;
  182. uint16_t Reserved1;
  183. uint8_t MAC [ETHER_ADDR_LEN];
  184. uint8_t DAK [HPAVKEY_DAK_LEN];
  185. uint16_t Reserved2;
  186. uint8_t MFG [PIB_HFID_LEN];
  187. uint8_t NMK [HPAVKEY_NMK_LEN];
  188. uint8_t USR [PIB_HFID_LEN];
  189. uint8_t NET [PIB_HFID_LEN];
  190. }
  191. PIB1_3;
  192. #ifndef __GNUC__
  193. #pragma pack (pop)
  194. #endif
  195. /*====================================================================*
  196. * PIB sub-structure introduced as of v1.4
  197. *--------------------------------------------------------------------*/
  198. #ifndef __GNUC__
  199. #pragma pack (push, 1)
  200. #endif
  201. typedef struct __packed VersionHeader
  202. {
  203. uint8_t FWVersion;
  204. uint8_t PIBVersion;
  205. uint16_t Reserved1;
  206. uint16_t PIBLength;
  207. uint16_t Reserved2;
  208. uint32_t Checksum;
  209. }
  210. VersionHeader;
  211. #ifndef __GNUC__
  212. #pragma pack (pop)
  213. #endif
  214. /*====================================================================*
  215. * PIB Structure as of v1.4
  216. *--------------------------------------------------------------------*/
  217. #ifndef __GNUC__
  218. #pragma pack (push, 1)
  219. #endif
  220. typedef struct __packed PIB1_4
  221. {
  222. struct VersionHeader VersionHeader;
  223. struct __packed
  224. {
  225. uint8_t MAC [ETHER_ADDR_LEN];
  226. uint8_t DAK [HPAVKEY_DAK_LEN];
  227. uint16_t Reserved1;
  228. uint8_t MFG [PIB_HFID_LEN];
  229. uint8_t NMK [HPAVKEY_NMK_LEN];
  230. uint8_t USR [PIB_HFID_LEN];
  231. uint8_t NET [PIB_HFID_LEN];
  232. uint8_t CCoSelection;
  233. uint8_t CoexistModeSelection;
  234. uint8_t FreqSelection;
  235. uint8_t Reserved2;
  236. }
  237. LocalDeviceConfig;
  238. }
  239. PIB1_4;
  240. #ifndef __GNUC__
  241. #pragma pack (pop)
  242. #endif
  243. /*====================================================================*
  244. * PIB sub-structures introduced as of v1.5;
  245. *--------------------------------------------------------------------*/
  246. #ifndef __GNUC__
  247. #pragma pack (push, 1)
  248. #endif
  249. typedef struct __packed LocalDeviceConfig
  250. {
  251. uint8_t MAC [ETHER_ADDR_LEN];
  252. uint8_t DAK [HPAVKEY_DAK_LEN];
  253. uint16_t Reserved1;
  254. uint8_t MFG [PIB_HFID_LEN];
  255. uint8_t NMK [HPAVKEY_NMK_LEN];
  256. uint8_t USR [PIB_HFID_LEN];
  257. uint8_t NET [PIB_HFID_LEN];
  258. uint8_t CCoSelection;
  259. uint8_t CoexistModeSelect;
  260. uint8_t PLFreqSelection;
  261. uint8_t Reserved2;
  262. uint8_t PreferredNID [HPAVKEY_NID_LEN];
  263. uint8_t AutoFWUpgradeable;
  264. uint8_t MDUConfiguration;
  265. uint8_t MDURole;
  266. uint8_t Reserved3 [10];
  267. }
  268. LocalDeviceConfig;
  269. typedef struct __packed StaticNetworkConfig
  270. {
  271. uint8_t Reserved [128];
  272. }
  273. StaticNetworkConfig;
  274. typedef struct __packed InterfaceConfig
  275. {
  276. uint8_t Reserved [96];
  277. }
  278. InterfaceConfig;
  279. typedef struct __packed IGMPConfig
  280. {
  281. uint8_t Reserved [32];
  282. }
  283. IGMPConfig;
  284. typedef struct __packed QoSParameters
  285. {
  286. uint8_t UnicastPriority;
  287. uint8_t McastPriority;
  288. uint8_t IGMPPriority;
  289. uint8_t AVStreamPriority;
  290. uint32_t PriorityTTL [4];
  291. uint8_t EnableVLANOver;
  292. uint8_t EnableTOSOver;
  293. uint16_t Reserved1;
  294. uint32_t VLANPrioTOSPrecMatrix;
  295. uint8_t Reserved2 [2020];
  296. }
  297. QoSParameters;
  298. typedef struct __packed ToneNotchParameters
  299. {
  300. uint8_t Reserved [5120];
  301. }
  302. ToneNotchParameters;
  303. #ifndef __GNUC__
  304. #pragma pack (pop)
  305. #endif
  306. /*====================================================================*
  307. * PIB structure as of v1.5
  308. *--------------------------------------------------------------------*/
  309. #ifndef __GNUC__
  310. #pragma pack (push, 1)
  311. #endif
  312. typedef struct __packed PIB1_5
  313. {
  314. struct VersionHeader VersionHeader;
  315. struct LocalDeviceConfig LocalDeviceConfig;
  316. struct StaticNetworkConfig StaticNetworkConfig;
  317. struct InterfaceConfig InterfaceConfig;
  318. struct IGMPConfig IGMPConfig;
  319. struct QoSParameters QoSParameters;
  320. struct ToneNotchParameters ToneNotchParameters;
  321. }
  322. PIB1_5;
  323. #ifndef __GNUC__
  324. #pragma pack (pop)
  325. #endif
  326. /*====================================================================*
  327. * PIB sub-structures introduced as of v2.0
  328. *--------------------------------------------------------------------*/
  329. #ifndef __GNUC__
  330. #pragma pack (push, 1)
  331. #endif
  332. typedef struct __packed FeatureConfiguration
  333. {
  334. uint8_t Reserved [128];
  335. }
  336. FeatureConfiguration;
  337. #ifndef __GNUC__
  338. #pragma pack (pop)
  339. #endif
  340. /*====================================================================*
  341. * PIB structure as of v2.0
  342. *--------------------------------------------------------------------*/
  343. #ifndef __GNUC__
  344. #pragma pack (push, 1)
  345. #endif
  346. typedef struct __packed PIB2_0
  347. {
  348. struct VersionHeader VersionHeader;
  349. struct LocalDeviceConfig LocalDeviceConfig;
  350. struct StaticNetworkConfig StaticNetworkConfig;
  351. struct InterfaceConfig InterfaceConfig;
  352. struct IGMPConfig IGMPConfig;
  353. struct QoSParameters QoSParameters;
  354. struct ToneNotchParameters ToneNotchParameters;
  355. struct FeatureConfiguration FeatureConfiguration;
  356. }
  357. PIB2_0;
  358. #ifndef __GNUC__
  359. #pragma pack (pop)
  360. #endif
  361. /*====================================================================*
  362. * PIB sub-structures introduced as of v3.0;
  363. *--------------------------------------------------------------------*/
  364. #ifndef __GNUC__
  365. #pragma pack (push, 1)
  366. #endif
  367. typedef struct __packed V3_0Configuration
  368. {
  369. uint32_t AVLNMembership;
  370. uint32_t SimpleConnectTimeout;
  371. uint8_t EnableLEDThroughputIndicate;
  372. uint8_t MidLEDThroughputThreshold;
  373. uint8_t HighLEDThroughputThreshold;
  374. uint8_t Reserved1;
  375. uint32_t EnableUnicastQueriesToMembers;
  376. uint32_t DisableExpireGroupMulticastInterval;
  377. uint32_t DisableLEDTestLights;
  378. uint8_t GPIOMap [12];
  379. uint8_t Reserved [8];
  380. }
  381. V3_0Configuration;
  382. #ifndef __GNUC__
  383. #pragma pack (pop)
  384. #endif
  385. /*====================================================================*
  386. * PIB structure as of v3.0;
  387. *--------------------------------------------------------------------*/
  388. #ifndef __GNUC__
  389. #pragma pack (push, 1)
  390. #endif
  391. typedef struct __packed PIB3_0
  392. {
  393. struct VersionHeader VersionHeader;
  394. struct LocalDeviceConfig LocalDeviceConfig;
  395. struct StaticNetworkConfig StaticNetworkConfig;
  396. struct InterfaceConfig InterfaceConfig;
  397. struct IGMPConfig IGMPConfig;
  398. struct QoSParameters QoSParameters;
  399. struct ToneNotchParameters ToneNotchParameters;
  400. struct FeatureConfiguration FeatureConfiguration;
  401. struct V3_0Configuration V3_0Configuration;
  402. }
  403. PIB3_0;
  404. #ifndef __GNUC__
  405. #pragma pack (pop)
  406. #endif
  407. /*====================================================================*
  408. * PIB sub-structures introduced as of v3.1;
  409. *--------------------------------------------------------------------*/
  410. #ifndef __GNUC__
  411. #pragma pack (push, 1)
  412. #endif
  413. typedef struct __packed V3_1Configuration
  414. {
  415. uint8_t Reserved [128];
  416. }
  417. V3_1Configuration;
  418. #ifndef __GNUC__
  419. #pragma pack (pop)
  420. #endif
  421. /*====================================================================*
  422. * PIB structure as of v3.1;
  423. *--------------------------------------------------------------------*/
  424. #ifndef __GNUC__
  425. #pragma pack (push, 1)
  426. #endif
  427. typedef struct __packed PIB3_1
  428. {
  429. struct VersionHeader VersionHeader;
  430. struct LocalDeviceConfig LocalDeviceConfig;
  431. struct StaticNetworkConfig StaticNetworkConfig;
  432. struct InterfaceConfig InterfaceConfig;
  433. struct IGMPConfig IGMPConfig;
  434. struct QoSParameters QoSParameters;
  435. struct ToneNotchParameters ToneNotchParameters;
  436. struct FeatureConfiguration FeatureConfiguration;
  437. struct V3_0Configuration V3_0Configuration;
  438. struct V3_1Configuration V3_1Configuration;
  439. }
  440. PIB3_1;
  441. #ifndef __GNUC__
  442. #pragma pack (pop)
  443. #endif
  444. /*====================================================================*
  445. * PIB structure as of v3.2
  446. *--------------------------------------------------------------------*/
  447. #ifndef __GNUC__
  448. #pragma pack (push, 1)
  449. #endif
  450. typedef struct __packed PIB3_2
  451. {
  452. struct VersionHeader VersionHeader;
  453. struct LocalDeviceConfig LocalDeviceConfig;
  454. struct StaticNetworkConfig StaticNetworkConfig;
  455. struct InterfaceConfig InterfaceConfig;
  456. struct IGMPConfig IGMPConfig;
  457. struct QoSParameters QoSParameters;
  458. struct ToneNotchParameters ToneNotchParameters;
  459. struct FeatureConfiguration FeatureConfiguration;
  460. struct V3_0Configuration V3_0Configuration;
  461. struct V3_1Configuration V3_1Configuration;
  462. }
  463. PIB3_2;
  464. #ifndef __GNUC__
  465. #pragma pack (pop)
  466. #endif
  467. /*====================================================================*
  468. * PIB sub-structure introduced as of v3.3;
  469. *--------------------------------------------------------------------*/
  470. #ifndef __GNUC__
  471. #pragma pack (push, 1)
  472. #endif
  473. typedef struct __packed V3_3Configuration
  474. {
  475. uint8_t Reserved [64];
  476. }
  477. V3_3Configuration;
  478. #ifndef __GNUC__
  479. #pragma pack (pop)
  480. #endif
  481. /*====================================================================*
  482. * PIB structure as of v3.3
  483. *--------------------------------------------------------------------*/
  484. #ifndef __GNUC__
  485. #pragma pack (push, 1)
  486. #endif
  487. typedef struct __packed PIB3_3
  488. {
  489. struct VersionHeader VersionHeader;
  490. struct LocalDeviceConfig LocalDeviceConfig;
  491. struct StaticNetworkConfig StaticNetworkConfig;
  492. struct InterfaceConfig InterfaceConfig;
  493. struct IGMPConfig IGMPConfig;
  494. struct QoSParameters QoSParameters;
  495. struct ToneNotchParameters ToneNotchParameters;
  496. struct FeatureConfiguration FeatureConfiguration;
  497. struct V3_0Configuration V3_0Configuration;
  498. struct V3_1Configuration V3_1Configuration;
  499. struct V3_3Configuration V3_3Configuration;
  500. }
  501. PIB3_3;
  502. #ifndef __GNUC__
  503. #pragma pack (pop)
  504. #endif
  505. /*====================================================================*
  506. * PIB structure as of v3.4
  507. *--------------------------------------------------------------------*/
  508. #ifndef __GNUC__
  509. #pragma pack (push, 1)
  510. #endif
  511. typedef struct __packed PIB3_4
  512. {
  513. struct VersionHeader VersionHeader;
  514. struct LocalDeviceConfig LocalDeviceConfig;
  515. struct StaticNetworkConfig StaticNetworkConfig;
  516. struct InterfaceConfig InterfaceConfig;
  517. struct IGMPConfig IGMPConfig;
  518. struct QoSParameters QoSParameters;
  519. struct ToneNotchParameters ToneNotchParameters;
  520. struct FeatureConfiguration FeatureConfiguration;
  521. struct V3_0Configuration V3_0Configuration;
  522. struct V3_1Configuration V3_1Configuration;
  523. struct V3_3Configuration V3_3Configuration;
  524. }
  525. PIB3_4;
  526. #ifndef __GNUC__
  527. #pragma pack (pop)
  528. #endif
  529. /*====================================================================*
  530. * PIB sub-structure introduced as of v3.5
  531. *--------------------------------------------------------------------*/
  532. #ifndef __GNUC__
  533. #pragma pack (push, 1)
  534. #endif
  535. typedef struct __packed FeatureGroupEnablement
  536. {
  537. uint8_t Reserved [16];
  538. }
  539. FeatureGroupEnablement;
  540. #ifndef __GNUC__
  541. #pragma pack (pop)
  542. #endif
  543. /*====================================================================*
  544. * PIB structure as of v3.5
  545. *--------------------------------------------------------------------*/
  546. #ifndef __GNUC__
  547. #pragma pack (push, 1)
  548. #endif
  549. typedef struct __packed PIB3_5
  550. {
  551. struct VersionHeader VersionHeader;
  552. struct LocalDeviceConfig LocalDeviceConfig;
  553. struct StaticNetworkConfig StaticNetworkConfig;
  554. struct InterfaceConfig InterfaceConfig;
  555. struct IGMPConfig IGMPConfig;
  556. struct QoSParameters QoSParameters;
  557. struct ToneNotchParameters ToneNotchParameters;
  558. struct FeatureConfiguration FeatureConfiguration;
  559. struct V3_0Configuration V3_0Configuration;
  560. struct V3_1Configuration V3_1Configuration;
  561. struct V3_3Configuration V3_3Configuration;
  562. struct FeatureGroupEnablement FeatureGroupEnablement;
  563. }
  564. PIB3_5;
  565. #ifndef __GNUC__
  566. #pragma pack (pop)
  567. #endif
  568. /*====================================================================*
  569. * PIB structure as of v3.6
  570. *--------------------------------------------------------------------*/
  571. #ifndef __GNUC__
  572. #pragma pack (push, 1)
  573. #endif
  574. typedef struct __packed PIB3_6
  575. {
  576. struct VersionHeader VersionHeader;
  577. struct LocalDeviceConfig LocalDeviceConfig;
  578. struct StaticNetworkConfig StaticNetworkConfig;
  579. struct InterfaceConfig InterfaceConfig;
  580. struct IGMPConfig IGMPConfig;
  581. struct QoSParameters QoSParameters;
  582. struct ToneNotchParameters ToneNotchParameters;
  583. struct FeatureConfiguration FeatureConfiguration;
  584. struct V3_0Configuration V3_0Configuration;
  585. struct V3_1Configuration V3_1Configuration;
  586. struct V3_3Configuration V3_3Configuration;
  587. struct FeatureGroupEnablement FeatureGroupEnablement;
  588. }
  589. PIB3_6;
  590. #ifndef __GNUC__
  591. #pragma pack (pop)
  592. #endif
  593. /*====================================================================*
  594. * functions;
  595. *--------------------------------------------------------------------*/
  596. // signed pibseek (signed fd, char const * filename, flag_t flags);
  597. signed pibfile (struct _file_ const * pib);
  598. signed lightning_pib_file (struct _file_ const * pib);
  599. signed lightning_pib_lock (struct _file_ const * pib);
  600. signed lightning_pib_peek (void const * memory);
  601. unsigned lightning_pib_size (signed fd, char const * filename);
  602. signed panther_pib_file (struct _file_ const * pib);
  603. signed panther_pib_peek (void const * memory);
  604. unsigned panther_pib_size (signed fd, char const * filename);
  605. uint16_t pibscalers (struct _file_ * pib);
  606. uint16_t psread (uint16_t values [], uint16_t limit, FILE * fp);
  607. /*====================================================================*
  608. *
  609. *--------------------------------------------------------------------*/
  610. #endif