1 /*****************************************************************************
19 ****************************************************************************/
21 extern int ccmni_v1_init(int md_id
);
22 extern void ccmni_v1_exit(int md_id
);
23 extern int ccmni_v2_init(int md_id
);
24 extern void ccmni_v2_exit(int md_id
);
25 extern int ccmni_v1_ipo_h_restore(int md_id
);
26 extern int ccmni_v2_ipo_h_restore(int md_id
);
29 void *ccmni_ctl_block
[MAX_MD_NUM
];
31 static char mac_addr_table
[MAX_MD_NUM
*5][ETH_ALEN
];
32 static int mac_addr_num
= 0;
35 int is_mac_addr_duplicate(char *mac
)
40 for(i
=0; i
<mac_addr_num
; i
++) {
41 if( strcmp(mac
, mac_addr_table
[i
]) == 0 ) {
47 for(j
=0; j
<ETH_ALEN
; j
++)
48 mac_addr_table
[i
][j
] = mac
[j
];
50 if(mac_addr_num
>= (MAX_MD_NUM
*5) )
56 int ccmni_init(int md_id
)
58 int ccmni_version
= 0;
60 if(ccci_get_sub_module_cfg(md_id
, "net", (char*)&ccmni_version
, sizeof(int)) != sizeof(int)) {
61 CCCI_MSG_INF(md_id
, "net", "[Error]get ccmni version fail\n");
64 CCCI_MSG_INF(md_id
, "net", "ccmni driver v%d\n", ccmni_version
);
70 return ccmni_v1_init(md_id
);
72 return ccmni_v2_init(md_id
);
74 CCCI_MSG_INF(md_id
, "net", "[Error]invalid CCMNI version: %d\n", ccmni_version
);
80 void ccmni_exit(int md_id
)
82 int ccmni_version
= 0;
84 if(ccci_get_sub_module_cfg(md_id
, "net", (char*)&ccmni_version
, sizeof(int)) != sizeof(int)) {
85 CCCI_MSG_INF(md_id
, "net", "get ccmni version fail\n");
92 return ccmni_v1_exit(md_id
);
94 return ccmni_v2_exit(md_id
);
96 CCCI_MSG_INF(md_id
, "net", "[Error]invalid CCMNI version: %d\n", ccmni_version
);
102 int ccmni_ipo_h_restore(int md_id
)
104 int ccmni_version
= 0;
106 if(ccci_get_sub_module_cfg(md_id
, "net", (char*)&ccmni_version
, sizeof(int)) != sizeof(int)) {
107 CCCI_MSG("Get ccmni verion fail\n");
111 switch(ccmni_version
)
114 return ccmni_v1_ipo_h_restore(md_id
);
116 return ccmni_v2_ipo_h_restore(md_id
);
118 CCCI_MSG("[Error]CCMNI not support version\n");