单模
满足SFP和SFF-8472标准,有双纤双向 SFP和单纤双向(BIDI)SFP
符合SFP规范的设备完全兼容
产品特性
1、完全符合SFP和SFF-8472标准的模块;
2、符合FE/GBE/2GBE/FC/2FC/4FC/SDH/SONET;
3、符合Telcordia (Bellcore) GR-468-CORE可靠性要求;
4、符合行业标准的RFT Electrical Connectorand Cage;
5、Class1规范产品,符合IEC60825-1 和IEC 60825-2要求
6、单一的+33 V供电和 TTL逻辑接口;
7、高达425Gb/s的双向数据链接;
8、EEPROM和串行身份z的功能;
9、工作室温:0 ~+70℃(商业级),-40 ~+85℃(工业级)
10、低EMI(电磁干扰);
11、可热插拔,双LC连接口;
12、完全符合RoHS6的标准;
应用:
1、千兆以太网交换机和路由器
2、光纤通道交换结构
3、XDSL 应用
4、边缘城市交换
5、100Base 快速以太网连接
6、SDH/STM-1,SONET/OC-3,ATM
网卡驱动初始化
网络设备驱动加载时,内核会调用一个驱动程序注册的初始化函数。 内核提供了一个宏 module_init 来执行注册 *** 作。
igb 模块的初始化函数长这样(请叫我程序拷贝员)。
/
igb_init_module - Driver Registration Routine
igb_init_module is the first routine called when the driver is
loaded All it does is register with the PCI subsystem
/
static int __init igb_init_module(void)
{
int ret;
pr_info("%s - version %s\n",
igb_driver_string, igb_driver_version);
pr_info("%s\n", igb_copyright);
#ifdef CONFIG_IGB_DCA
dca_register_notify(&dca_notifier);
#endif
ret = pci_register_driver(&igb_driver);
return ret;
}
module_init(igb_init_module);
可以看到主要是有个 pci_register_driver 的函数,下面看看它干了啥。
PCI初始化
网卡一般都是PCI设备,可以用命令lspci查看。 PCI设备通过配置空间中的一系列寄存器来识别自己。 驱动会使用内核提供的宏 MODULE_DEVICE_TABLE 来导出驱动支持的PCI设备(使用设备ID标识)。 内核会用这个表决定加载特定的驱动从而控制PCI设备。
static const struct pci_device_id igb_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_1GBPS) },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_SGMII) },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I354_BACKPLANE_2_5GBPS) },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I211_COPPER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_COPPER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_FIBER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82580_SGMII), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82580_COPPER_DUAL), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_DH89XXCC_SGMII), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_DH89XXCC_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_DH89XXCC_BACKPLANE), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_DH89XXCC_SFP), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_NS), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_NS_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES_QUAD), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_QUAD_COPPER_ET2), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_QUAD_COPPER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 },
{ PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 },
/ required last entry /
{0, }
};
MODULE_DEVICE_TABLE(pci, igb_pci_tbl);
pci_register_driver 使用 igb_driver 作为参数。igb_driver 则使用 igb_pci_tbl 赋值给域 id_table。
static struct pci_driver igb_driver = {
name = igb_driver_name,
id_table = igb_pci_tbl,
probe = igb_probe,
remove = igb_remove,
#ifdef CONFIG_PM
driverpm = &igb_pm_ops,
#endif
shutdown = igb_shutdown,
sriov_configure = igb_pci_sriov_configure,
err_handler = &igb_err_handler
};
重头戏 igb_probe
igb_driver 有个很重要的域 igb_probe。内核识别到PCI设备驱动后,就会调用pci_driver 中 probe 指向的函数。对 igb 来说,就是 igb_probe 函数。
igb_probe 会执行以下 *** 作:
启用PCI设备。
设置DMA掩码。
请求内存区域和IO端口。
注册ethtool函数。
分配 net_device,这个结构代表一个抽象的网络设备。
注册 net_device_ops 到 net_device 的 netdev_ops 域。
设置 net_device 的features。
还有一些杂七杂八的工作都在这里完成,watchdog, 缓冲区分配等等。
struct net_device_ops 包含网络子系统 *** 作设备的诸多函数指针。
static int igb_probe(struct pci_dev pdev, const struct pci_device_id ent) {
netdev->netdev_ops = &igb_netdev_ops;
}
static const struct net_device_ops igb_netdev_ops = {
ndo_open = igb_open,
ndo_stop = igb_close,
ndo_start_xmit = igb_xmit_frame,
ndo_get_stats64 = igb_get_stats64,
ndo_set_rx_mode = igb_set_rx_mode,
ndo_set_mac_address = igb_set_mac,
ndo_change_mtu = igb_change_mtu,
ndo_do_ioctl = igb_ioctl,
ndo_tx_timeout = igb_tx_timeout,
ndo_validate_addr = eth_validate_addr,
ndo_vlan_rx_add_vid = igb_vlan_rx_add_vid,
ndo_vlan_rx_kill_vid = igb_vlan_rx_kill_vid,
ndo_set_vf_mac = igb_ndo_set_vf_mac,
ndo_set_vf_vlan = igb_ndo_set_vf_vlan,
ndo_set_vf_rate = igb_ndo_set_vf_bw,
ndo_set_vf_spoofchk = igb_ndo_set_vf_spoofchk,
ndo_get_vf_config = igb_ndo_get_vf_config,
#ifdef CONFIG_NET_POLL_CONTROLLER
ndo_poll_controller = igb_netpoll,
#endif
ndo_fix_features = igb_fix_features,
ndo_set_features = igb_set_features,
ndo_fdb_add = igb_ndo_fdb_add,
ndo_features_check = igb_features_check,
}
QorIQ P2平台系列包含P2020与P2010通信处理器,可实现单线程极高性能功耗比,适用于联网、电信、军事以及工业领域中的各种应用。 在45nm技术低功耗平台上,该系列产品最高可实现12 GHz双核以及单核频率。
QorIQ P2系列由双核、单核产品组成,这些产品在引脚上兼容QorIQ P1平台产品,提供了一套五款可互换的高性价比解决方案。 可从单核533 MHz(P1011)扩展至双核12 GHz(P2020),在相同的引脚分配中,两个QorIQ平台可实现45倍超强总频率范围。
两个系列中的这些设备在软件上互相兼容,它们均采用e500 Power Architecture核心与外设,与现有的PowerQUICC®处理器在软件上完全兼容。 这让用户能够在一块电路板设计中创造出具有多个性能点的产品。 P2020与P1020处理器支持对称于非对称式多任务处理,让用户能够通过线程级或应用程序级的并行机制来提升性能。
P2020与P2010通信处理器均具备先进的特性集,非常易于使用。 集成的安全引擎支持联网以及无线应用中所使用的一般安全算法,例如IPSec以及Kasumi。 64b存储控制器可提供能够满足未来需要的存储器技术移植,支持DDR2和DDR3。 它还支持误差校正码,这是所有高可靠性系统都必不可少的。 通过16b本地总线、USB、SD/MMC以及SPI,还支持闪存等其它类型的存储器。
QorIQ P2系列集成了一套丰富的接口,其中包括SerDes、千兆以太网、PCI-Express、RapidIO®技术以及USB。 三个10/100/1000以太网端口支持先进的数据包分析、流量控制以及服务质量等特性以及IEEE® 1588时间标志。 四个SerDes巷道可在两个串行RapidIO端口、三个PCI Express端口以及两个SGMII端口之间进行分配。
高通QCA9563是单核心路由器处理器,性能较为一般。
QCA9563是高通比较老的一颗路由器处理器了,采用单核心MIPS 74Kc架构,主频750 MHz,集成3x3 MIMO 24GHz WiFi模块,外部可以搭载SGMII接口的外置芯片。
以上就是关于思科48口千兆光纤交换机使用什么型号的SFP模块全部的内容,包括:思科48口千兆光纤交换机使用什么型号的SFP模块、网络设备初始化主要流程是、P2020的简介等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)