Здравствуйте!
Задача состоит в том, чтобы создать виртуальное устройство, объединяющее сетевые интерфейсы (активный и пассивный), и в случае откл активного вкл пасссивный. Возможно ли это вообще реализовать в QNX? Для этой задачи использую brconfig, но ничего не выходит.
uname -a:
QNX Adv400MHz 6.5.0 2010/07/09-14:44:03EDT x86pc x86
pci:
PCI version = 3.00
Class = Display (VGA)
Vendor ID = 8086h, Intel Corporation
Device ID = 27aeh, Mobile 945GME Express Integrated Graphics Controller
PCI index = 0h
BAR - 0 [Mem] = fdf00000h enabled
BAR - 1 [I/O] = ff00h enabled
BAR - 2 [Mem] = d0000000h enabled
BAR - 3 [Mem] = fdf80000h enabled
PCI Int Pin = INT A
Interrupt line = 5
CPU Interrupt = 5h
Class = Display (Other)
Vendor ID = 8086h, Intel Corporation
Device ID = 27a6h, Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller
PCI index = 0h
BAR - 0 [Mem] = 0h disabled
PCI Int Pin = NC
Interrupt line = 0
CPU Interrupt = 0h
Class = Mass Storage (IDE)
Vendor ID = 8086h, Intel Corporation
Device ID = 27c4h, 82801GBM/GHM (ICH7 Family) SATA IDE Controller
PCI index = 0h
BAR - 0 [I/O] = 0h enabled
BAR - 1 [I/O] = 0h enabled
BAR - 2 [I/O] = 0h enabled
BAR - 3 [I/O] = 0h enabled
BAR - 4 [I/O] = f800h enabled
PCI Int Pin = INT B
Interrupt line = 0
CPU Interrupt = 0h
Class = Network (Ethernet)
Vendor ID = 11abh, Marvell Technology Group Ltd.
Device ID = 4362h, 88E8053 PCI-E Gigabit Ethernet Controller
PCI index = 0h
BAR - 0 [Mem] = fddfc000h enabled
BAR - 2 [I/O] = ce00h enabled
PCI Expansion ROM = fddc0000h disabled
PCI Int Pin = INT A
Interrupt line = 5
CPU Interrupt = 5h
Class = Network (Ethernet)
Vendor ID = 11abh, Marvell Technology Group Ltd.
Device ID = 4362h, 88E8053 PCI-E Gigabit Ethernet Controller
PCI index = 1h
BAR - 0 [Mem] = fd9fc000h enabled
BAR - 2 [I/O] = be00h enabled
PCI Expansion ROM = fd9c0000h disabled
PCI Int Pin = INT A
Interrupt line = 10
CPU Interrupt = ah
Настройка сетевого менеджера:
io-pkt-v4-hc -d /lib/dll/devnp-msk.so
2 способа:
1)
ifconfig bridge0 create
brconfig bridge0 add msk0 stp msk0 add msk1 stp msk1
ifconfig -a:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
inet 127.0.0.1 netmask 0xff000000
msk0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
address: 00:0b:ab:28:b7:01
media: Ethernet autoselect (1000baseT full-duplex,flowcontrol,rxpause,txpause)
status: active
msk1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
address: 00:0b:ab:28:b7:02
media: Ethernet autoselect (1000baseT full-duplex,flowcontrol,rxpause,txpause)
status: active
bridge0: flags=0 mtu 1500
ifconfig bridge0 inet 192.168.200.179 up:
ifconfig: SIOCAIFADDR: Inappropriate I/O control operation
-----------------------------------------------------------------------------------------------------------------------------------------
2)
ifconfig msk1 inet 192.168.200.179 up
ifconfig bridge0 create
brconfig bridge0 add msk0 stp msk0 add msk1 stp msk1
brconfig bridge0 up
ifconfig -a:
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33192
inet 127.0.0.1 netmask 0xff000000
msk0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
address: 00:0b:ab:28:b7:01
media: Ethernet autoselect (1000baseT full-duplex,flowcontrol,rxpause,txpause)
status: active
msk1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
address: 00:0b:ab:28:b7:02
media: Ethernet autoselect (1000baseT full-duplex,flowcontrol,rxpause,txpause)
status: active
inet 192.168.200.179 netmask 0xffffff00 broadcast 192.168.200.255
bridge0: flags=41<UP,RUNNING> mtu 1500
brconfig -a:
bridge0: flags=41<UP,RUNNING>
Configuration:
priority 32768 hellotime 2 fwddelay 15 maxage 20
ipfilter disabled flags 0x0
Interfaces:
msk1 flags=7<LEARNING,DISCOVER,STP>
port 3 priority 128 path cost 55 blocking
msk0 flags=7<LEARNING,DISCOVER,STP>
port 2 priority 128 path cost 55 listening
Address cache (max cache: 100, timeout: 1200):
В этом случае пингуется локальный узел, но при откл интерфейса с назначенным адресом (msk1) пинг пропадает.
P.S. после добавления интерфейсов в мост без параметра stp происходит блокировка интерфейсов.