Post on 13-Jan-2016
description
IXA SDK 3.x
AgendaIXA
IXA IXA SDK 3.5 Developer WorkbenchIXA SDK 3.5 Portability Framework
IXA SDK 3.5 Intel IXP2xxx C (NetSim) Wind River VxWorks 5.4()MontaVista Linux3.0() XScale
IXA SDK 3.5(image) (HAL)C:\IXA_SDK_3.5\me_tools\XSC_CoreLibs\uclo(HAL)XScaleCSRSRAMC:\IXA_SDK_3.5\me_tools\XSC_CoreLibs\HalMev2HALC(OSSL)
IXA SDK 3.5
IXA SDK 3.5(microblock) IPv45 (core component) XScale POS/MAC/ATM API
IXA SDK 3.5(Infrastructure Library)(CCI)VxWorks (CP_PDK) (NPF)APIVxWorks
10OC-12 ATMOC-48 POSOC-192 POSCSIX
IPv4 L3RFC1812IPv6 L3MPLS
POSMACATMTCP/IP
IXA
C CAMIPv4IPv6CRC
XScale CSR SRAMDRAM(DRAM)SRAM
CCICP_PDK(CCI) API (CP_PDK)(NPF) API
(OSSL)
OSCCI OSSL
\src ApplicationsBuilding_blocksCp_pdk EXAMPLESFrameworkCCRMIncludeCLibraryCRCxscaleCCIWorkspaceWind River Tornadomake
\src\applications Dispatch_loopListBuild.listLogScripts.indStreams
AgendaIXA
(NPF) (Intel) (plug-in) QoSVIDD
NPFRIBRIB (element aware)
NPF
(NPFCSIX)
MAC
MAC
MAC
MAC
MAC
MAC
Switch fabric
MAC
MAC
MAC
MAC
MAC
MAC
DRAM(2KB)
SRAM Scratch ring (meta data) SRAM (8)32
SRAM
SDRAM
32b
32B
2KB
(dispatch loop) dl_source dl_sink dlNextBlock
CC / (patches symbols)
CCI
ICMP
SP
(property) - MTUMAC IP
(call-back)API
NPFCP_PDK NPF API
CP_PDKAPIAPINPFAPI APIAPI CP
CP_PDK FEAPINPF APIAPIAPIshim
ARP
CP_PDK IETFForCESIETFdraft-ietf-forces-protocol-01.txt (agent) COPSCommon Open Policy Service QoS RFC2748 GSMPGeneral Switch Management ProtocolIPRFC3292-5 CORBA InfinibandPCI
CP-PDK(FP)APIAPI ShimAPIFP APINPF APIIntelIXPFP
CP-PDK
VIDD IP-in-IP (NPT)END
AgendaIXA
ID 8ID dl_next_block dl_next_block
void main(){DL_Source_Init();// initialize DL_Source blockIPFwd_Init(); // initialize the Ipv4 Forwarding blockMeter_Init(); // initialize the meter blockWRED_Init(); // initialize the WRED blockDL_Sink_Init(); // initialize DL_MESink blockwhile(TRUE) { // Run the dispatch loopDL_Source(); // Get a packet from the scratch ringIPFwd(); // call the IP forwarding blockMeter(); // call the metering blockWRED(); // call the WRED blockDL_Sink(); // pass packet to another microengine} // end dispatch loop while} // end main
SRAM24SDRAM
313029:2423:0EOPSOPcell_countLw_offset
31:2827:2423:2019:1615:1211:87:43:0Buffer_nextBuffer_sizeoffsetPacket_sizeFree_list_idRx_statHeader_typeInput_portOutput_portNext_hop_idFabric_portreservedNexthop_id_typecolorFlow_idClass_idreservedPacket_next
Buffer_nextBuffer_sizeoffsetPacket_sizeFree_list_idIDRx_statHeader_typeInput_portOutput_portNext_hop_idFabric_portNexthop_id_typecolorQoSFlow_idQoSMPLSClass_idPacket_next
AgendaIXA
APIAPIAPIAPIAPIAPIAPISRAMDRAMAPI
APImicroengine.c
ix_rm_ueng_set_ucodeix_rm_ueng_map_ucodeix_rm_ueng_reset_allix_rm_ueng_patch_symbolsix_rm_ueng_loadix_rm_ueng_set_ucodeix_rm_ueng_startix_rm_ueng_stopix_rm_ueng_resetix_rm_ueng_enableix_rm_ueng_disable
API
ix_rm_hw_queue_createix_rm_hw_queue_deleteix_rm_hw_enqueueix_rm_hw_dequeueix_rm_hw_queue_array_get_base_addressSRAM Q-Arrayix_rm_hw_sram_ring_createSRAMix_rm_hw_scratch_ring_createix_rm_hw_ring_deleteix_rm_hw_ring_putix_rm_hw_ring_get
API
ix_rm_hw_buffer_free_list_createix_rm_sw_buffer_free_list_createix_rm_buffer_free_list_deleteix_rm_buffer_free_list_get_infoix_rm_buffer_allocix_rm_buffer_freeix_rm_buffer_free_chainix_rm_buffer_get_metaix_rm_buffer_get_dataix_rm_buffer_is_eopix_rm_buffer_is_sopix_rm_buffer_get_type
API ID32 (end point) ID(dispatch engine) internal_communication.c
API ix_cp_property_info /prop1/prop2/prop3/prop4
CCIAPI 32
3362828/CC
CCIAPI
ix_cci_cc_add_event_handler ix_cci_cc_add_message_handler ix_cci_cc_add_packet_handler ix_cci_cc_create ix_cci_cc_destroy ix_cci_cc_remove_event_handler ix_cci_cc_remove_message_handler ix_cci_cc_remove_packet_handlerix_cci_exe_add_policyix_cci_exe_get_info
ICMP / IDbindings.h
CCIAPI
create_eventactivate_eventprocess_due_eventsreschedule_eventget_user_contextix_cci_handle_events
CCIAPI
ix_cci_get_first_pendingix_cci_get_next_pendingix_cci_process_selected_childix_cci_process_wrr_policyWRRix_cci_process_rr_policyRRix_cci_process_sp_policySPix_cci_policy_destroyix_cci_policy_add_branchix_cci_policy_add_leafix_cci_policy_clear_entry
CCIAPI C:\IXA_SDK_3.1\src\applications\sysapp_common\source\execution_engines.c
_ix_sa_create_execution_engines_ix_sa_delete_execution_enginesix_cci_exe_shutdown_ix_sa_exe_init_ix_sa_enum_cc_from_listCC_LIST_ix_sa_exe_fini_ix_sa_reg_verify_engines_ix_sa_check_engine_prop_ix_sa_create_default_engine_ix_sa_delete_default_engine_ix_sa_default_exe_init_ix_sa_default_exe_fini_ix_sa_set_cc
sysapp_main.c
ix_sa_create_ix_sa_entry_ix_sa_start_ix_sa_init_ix_sa_finiix_sa_shutdown_ix_sa_msf_initMSF RBUF_ix_sa_media_resetmedia_card_10x1gb_initMSF
XML System_PorpertiesAUTO_RESTARTBLAD_IDPORT00IP_VERIP_ADDRIP_MASKIP_BCASTIP_GATEMTULINK_SPEEDMAC_ADDRMEDIA_TYPEPORT01PORT02PORT03ME_01CONTEXTCONTEXT_MASKSystemAppFREELISTSFL_01ELEMENT_COUNTSRAM_SIZESRAM_CHANDRAM_SIZEDRAM_CHANSCRATCH_RINGSSR_01IDCHANELEMENT_SIZESR_02SR_03SA_EXEC_ENGINESSA_EE_00CC_LISTMICROENGINESME_01CONTEXTCONTEXT_MASK
CP_PDK C:\IXA_SDK3.1\src\cp_pdk apps cachenetlink.c Common DataTypeIPv4IPv6IPv4IPv6EncapIncInterconnectTCP/IPControlPlane APIImplementationsNPFAPIIPv4ATMDiffServCoreBlocksdataRelayShimincPDKManagerPDKPDKTransportPluginIPv4ATM
CP_PDKCppui ForwardingPlane DataRelayShimFPManagerFPModulePacketHandlerTransportPlugin Fpmodule_coreIXA SDK Fpmodule_proxy Npf_api NPF API
AgendaIXA
Oc-48 POS IPv4
PPP
IPv4
CSIX
CSIX
CSIX
CSIX
PPP
POSIPv4PPPIPv4CSIX04125636CSIX7CSIX_TX
CSIXPPP
IPv6
AgendaIXA
Packet_RXPPP_classify Ipv4FwderQMCSIXCSIX
Packet_RX OC-48 POSDlSinkpacket_rx.c(mpacket)RBUFRBUF128RBUF8KB DRAM
Packet_RXrxc RBUFDRAMRBUF
Packet_RX
SESPSOP SOPEOPSOPEOPSEPPMOPEOP SOPEOPMOPSOPEOPMSPSOP MOP ESPSOP EOP SPPMOPEOP SOPSSPSOP SOP MPPMOPEOP MOP EPPMOPEOP EOP
PPP_classify PPPIPv4IPv6LCPIPCP LCPIPCPPPPXScale dlMeta
Ipv4Fwder IPv4 RFC1812RFC2644 MPLSIPv6-IPv4
Ipv4Fwderdl_next_blockBID_IPV4dl_next_blockIPV4_NEXT1
QM SRAMSRAMQ-ArrayCAM16cache
QMCSIXATMQMPOSQM
QM0CAMCAMLRUCAMCAMLRU
CSIX 6416QoS (RR)(WRR) VoQXoff
CSIX 323232 4
CSIX CSIXC 8/16 C8CC 81632IDQoSIDMPLS/IDMSF(TCW)CSIXCSIX
CSIX(TXC)CTXCCTXCTXCDRAM TBUFDRAMTBUF 4CAMTBUFDRAMTBUFTBUF41n-1-3n2n+1-4n
AgendaIXA
IPv4
IPv4
(RTM)
CSIX TX
(CCI)
(RM)
C:\IXA_SDK_3.1\sec\building_blocks
AtmsarATM SARIpv4ipv4_coreIPv4Ipv6IPv6Qos6DSCPWREDQueue_managerqm_cell\core\queue_managerRxATMCSIXPOSSchedulerATMCSIXStack_driverTxATMCSIXPOS AAL5
eth_rx XScaleSRAM 48MAC610 MACMAC
64SRAM_FLT_TABLE_BASESRAM_PORT_BIT_MAP_BASE SRAML2
IX_CC_ETH_RX_MSG_GET_STATISTICS_INFOIX_CC_ETH_RX_MSG_GET_INTERFACE_STATEIX_CC_COMMON_MSG_ID_PROP_UPDATEIX_CC_ETH_RX_MSG_ADD_MAC_ADDRMACIX_CC_ETH_RX_MSG_DELETE_MAC_ADDRMACIX_CC_ETH_RX_MSG_LOOKUP_PORT
IPARPARPARPARPNPNPARPPCINP
APICCI API
Ix_cc_eth_rx_initIx_cc_eth_rx_finiix_cc_eth_rx_msg_handlerix_cc_eth_rx_low_priority_pkt_handlerix_cc_eth_rx_hdlr.cix_cc_eth_rx_high_priority_pkt_handlerix_cc_eth_rx_hdlr.c
APIAPI
ix_cc_eth_rx_async_get_statistics_infoix_cc_eth_rx_msg_hlp.cix_cc_eth_rx_async_get_interface_stateix_cc_eth_rx_msg_hlp.cix_cc_eth_rx_async_add_mac_addrMACix_cc_eth_rx_msg_hlp.cix_cc_eth_rx_async_delete_mac_addrMACix_cc_eth_rx_msg_hlp.cix_cc_eth_rx_async_lookup_portMACix_cc_eth_rx_msg_hlp.cix_cc_eth_rx_get_statistics_info/ix_cc_eth_rx_core.c
APIAPI
ix_cc_eth_rx_get_interface_stateix_cc_eth_rx_core.cix_cc_eth_rx_set_propertyix_cc_eth_rx_core.cix_cc_eth_rx_add_mac_addrMACMACix_cc_eth_rx_core.cix_cc_eth_rx_del_mac_addrMACMACix_cc_eth_rx._core.cix_cc_eth_rx_lookup_portix_cc_eth_rx_core.c
rtmv4 IPv4API
API
Ix_cc_rtmv4_initIx_cc_rtmv4_finiIx_cc_rtmv4_add_next_hopNHDBIx_cc_rtmv4_delete_next_hopNHDBIx_cc_rtmv4_updata_next_hopNHDBIx_cc_rtmv4_get_next_hopIx_cc_rtmv4_set_mtuMTUIx_cc_rtmv4_set_flagsIx_cc_rtmv4_add_routeIx_cc_rtmv4_update_routeIx_cc_rtmv4_delete_routeIx_cc_rtmv4_lookupIx_cc_rtmv4_dump_next_hopsIx_cc_rtmv4_dump_routesIx_cc_rtmv4_purgeIx_cc_rtmv4_purge_routesIx_cc_rtmv4_get_symblesIx_cc_rtmv4_get_statistics
IPv4 RFC1812RFC2644IPICMPICMPIPv4 rtmv4
IPv4RTM644ICMP
IPv4IP IPv4 IP{0, 0}DEE
IPv4ICMP ICMP ICMPICMPICMPICMP
IPv4ICMPICMP_ix_cc_ipv4_icmp_build_messageix_rm_buffer_get_metaICMPICMP_ix_cc_ipv4_init_ip_headerTTLix_cc_hw_get_packet_data ICMPIP_ix_cc_ipv4_get_port_ip_addressICMPIDICMP_ix_cc_ipv4_get_ip_id() ICMPICMP_ix_cc_ipv4_icmp_queue_message
IPv4IPIPIPIPICMPIPIPIP1ICMP
IPv4(LSRR)(SSRR)ICMP
IPv4MTUMTUDFDFICMPMTU
IPv4APICCI API
ix_cc_ipv4_initix_cc_ipv4_finiix_cc_ipv4_msg_handlerix_cc_ipv4_microblock_high_priority_pkt_handlerIPv4ix_cc_ipv4_microblock_low_priority_pkt_handlerIPv4ix_cc_ipv4_stkdrv_pkt_handlerix_cc_ipv4_common_pkt_handler
IPv4APIAPI
ix_cc_ipv4_async_add_routeix_cc_ipv4_async_delete_routeix_cc_ipv4_async_update_route ix_cc_ipv4_async_lookup_routeix_cc_ipv4_async_purge_routesix_cc_ipv4_async_dump_routesix_cc_ipv4_async_add_next_hopix_cc_ipv4_async_delete_next_hopix_cc_ipv4_async_update_next_hopix_cc_ipv4_async_get_next_hopix_cc_ipv4_async_purge_rtm
IPv4APIAPI
ix_cc_ipv4_add_routeix_cc_ipv4_delete_routeix_cc_ipv4_update_routeix_cc_ipv4_lookup_routeix_cc_ipv4_purge_routesix_cc_ipv4_dump_routesix_cc_ipv4_add_next_hopix_cc_ipv4_delete_next_hopix_cc_ipv4_update_next_hopix_cc_ipv4_get_next_hopix_cc_ipv4_purge_rtm
(VIDD)
VIDDTCP/IP (VIDD) IXPXScaleTCP/IPMUX
IPv4IPv6MPLSID
APICCI API
ix_cc_stkdrv_initix_cc_stkdrv_finiix_cc_stkdrv_high_priority_pkt_handlerix_cc_stkdrv_low_priority_pkt_handlerix_cc_stkdrv_msg_handlerix_cc_stkdrv_pkt_to_remote_handler
VIDD
ix_cc_stkdrv_vidd_initVIDDix_cc_stkdrv_vidd_finiVIDDix_cc_stkdrv_vidd_npt_loadVxWorks MUXix_cc_stkdrv_vidd_receive_pktVIDDix_cc_stkdrv_vidd_npt_sendMUXix_cc_stkdrv_vidd_npt_unloadMUXix_cc_stkdrv_vidd_npt_ioctlVIDDix_cc_stkdrv_vidd_npt_startVIDDix_cc_stkdrv_vidd_npt_stopVIDDix_cc_stkdrv_vidd_npt_mCastAddrAddVIDDix_cc_stkdrv_vidd_npt_mCastAddrDelVIDDix_cc_stkdrv_vidd_npt_mCastAddrGetVIDDix_cc_stkdrv_vidd_npt_pollSendix_cc_stkdrv_vidd_npt_pollRcv
QMQM PCI CSIXATMPOS
CSIXWRR QoS DRR
L2 CSIXATM/POSARP /
ARP ARP2IPARPIP ARPARP(aging) ARPIPARP ARP1 ARP