/* * see section 3.8.1 of TCG TNC IF-IMV Specification 1.3 */ TNC_Result TNC_IMV_Initialize(TNC_IMVID imv_id, TNC_Version min_version, TNC_Version max_version, TNC_Version *actual_version) { if (imv_scanner) { DBG1(DBG_IMV, "IMV \"%s\" has already been initialized", imv_name); return TNC_RESULT_ALREADY_INITIALIZED; } imv_scanner = imv_agent_create(imv_name, msg_types, 1, imv_id, actual_version); if (!imv_scanner) { return TNC_RESULT_FATAL; } if (min_version > TNC_IFIMV_VERSION_1 || max_version < TNC_IFIMV_VERSION_1) { DBG1(DBG_IMV, "no common IF-IMV version"); return TNC_RESULT_NO_COMMON_VERSION; } /* set the default port policy to closed (TRUE) or open (FALSE) */ closed_port_policy = lib->settings->get_bool(lib->settings, "libimcv.plugins.imv-scanner.closed_port_policy", TRUE); DBG2(DBG_IMV, "default port policy is %s ports", closed_port_policy ? "closed" : "open"); /* get the list of open|closed ports */ tcp_ports = get_port_list("tcp"); udp_ports = get_port_list("udp"); return TNC_RESULT_SUCCESS; }
int main(int argc, char * const argv[]) { int c; boolean_t fork = B_TRUE; progname = basename(strdup(argv[0])); if ((fmri = (const char *)getenv("SMF_FMRI")) == NULL) fmri = DEFAULT_FMRI; (void) setlocale(LC_ALL, ""); #if !defined(TEXT_DOMAIN) #define TEXT_DOMAIN "SYS_TEST" #endif (void) textdomain(TEXT_DOMAIN); while ((c = getopt(argc, argv, "djn")) != EOF) { switch (c) { case 'd': dlevel = 0xffff; break; case 'j': json = B_TRUE; break; case 'n': fork = B_FALSE; break; default: (void) fprintf(stderr, gettext("Unknown option " "\'%c\'.\n"), c); usage(progname); } } pid = getpid(); if ((main_port = port_create()) == -1) err(EXIT_FAILURE, "port_create() failed"); list_create(&links, sizeof (link_t), offsetof(link_t, node)); VERIFY(get_sysinfo()); lldp_read_config(); signal_init(); get_port_list(); lldp_init(4); cdp_init(4); main_loop(); return (0); }
void switchlink_api_init() { sai_status_t status = SAI_STATUS_SUCCESS; sai_initialize(); status = sai_api_query(SAI_API_SWITCH, (void **)&switch_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_VIRTUAL_ROUTER, (void **)&vrf_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_VLAN, (void **)&vlan_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_STP, (void **)&stp_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_FDB, (void **)&fdb_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_ROUTER_INTERFACE, (void **)&rintf_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_NEIGHBOR, (void **)&neigh_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_NEXT_HOP, (void **)&nhop_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_NEXT_HOP_GROUP, (void **)&nhop_group_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_ROUTE, (void **)&route_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_IPMC, (void **)&ipmc_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_L2MC, (void **)&l2mc_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_HOST_INTERFACE, (void **)&host_intf_api); assert(status == SAI_STATUS_SUCCESS); status = sai_api_query(SAI_API_ACL, (void **)&acl_api); assert(status == SAI_STATUS_SUCCESS); register_sai_notifications(); register_sai_traps(); get_port_list(); }