R&D/VRouter

olive에서 fxp 인터페이스가 라우팅이 안될 때

sunshout 2009. 5. 12. 20:16
olive 를 설치하고 두 대의 라우터를 테스트하면 두 라우터 간에 ping 은 잘 된다.
그런데 OSPF, ISIS를 설정하고 나서 routing table 이 업데이트가 되지 않는다.

이는 fxp 인터페이스가 multicast traffic 을 제대로 처리하지 못하기 때문이다.
가상머신의 fxp 드라이버 소스코드에서 multicast traffic을 drop 시키기 때문이다.

이를 해결하기 위해서는


hw/eepro100.c (Language : c)
# static void nic_receive 함수의

        /* TODO: check multicast all bit. */
        assert(!(s->configuration[21] & BIT(3)));
        int mcast_idx = compute_mcast_idx(buf);
        if (!(s->mult[mcast_idx >> 3] & (1 << (mcast_idx & 7)))) {
          //return;                                                                               
        }

## return 코드를 comment 처리한다.

그리고 kvm(또는 qemu)를 다시 컴파일하고 실행하면 잘된다.