Hi Alfa,

Why do you want to push VLAN tag 10 into the BD? This won't work with BVI, as I 
explained before, which is a main interface and therefore cannot send packet 
into the BD with VLAN tag 10. So when the ARP response come back from BVI to 
output on GigabitEthernetd/0/0 with sw_if_index1, it is dropped by tag-rewrite 
configured on that interface which expect the ARP response packet with VLAN 10 
to pop before output.

If you remove the tag-rewrite operation on GigabitEthernetd/0/0, this would 
work fine.

Regards,
John

From: Alfa [mailto:76278...@qq.com]
Sent: Saturday, January 21, 2017 7:10 AM
To: John Lo (loj) <l...@cisco.com>; vpp-dev <vpp-dev@lists.fd.io>
Subject: Re: RE: [vpp-dev] How to setup BVI with a ip address?

Hi John,
I want to add access bvi like the example you given, but it doesn't work, the 
config looks like following:

set interface l2 bridge GigabitEthernetd/0/0 10
set interface l2 tag-rewrite GigabitEthernetd/0/0 push dot1q 10
set interface state GigabitEthernetd/0/0 up

loop create
set int l2 bridge loop0 10 bvi
set int ip address loop0 192.168.10.1/24
set int state loop0 up

trace dpdk-input, we can get following log. when packet passed the link layer 
packet header is wrong.
00:00:49:249362: dpdk-input
  GigabitEthernetd/0/0 rx queue 0
  buffer 0x4bba: current data 0, length 60, free-list 0, totlen-nifb 0, trace 
0x0
  PKT MBUF: port 0, nb_segs 1, pkt_len 60
    buf_len 2176, data_len 60, ol_flags 0x180, data_off 128, phys_addr 
0x75d2ad80
    packet_type 0x0
    Packet Offload Flags
      PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid
      PKT_RX_L4_CKSUM_GOOD (0x0100) L4 cksum of RX pkt. is valid
  ARP: a0:36:9f:55:6e:88 -> ff:ff:ff:ff:ff:ff
  request, type ethernet/IP4, address size 6/4
  a0:36:9f:55:6e:88/192.168.10.100 -> 00:00:00:00:00:00/192.168.10.1
00:00:49:249375: ethernet-input
  ARP: a0:36:9f:55:6e:88 -> ff:ff:ff:ff:ff:ff
00:00:49:249383: l2-input
  l2-input: sw_if_index 1 dst ff:ff:ff:ff:ff:ff src a0:36:9f:55:6e:88
00:00:49:249386: l2-input-vtr
  l2-input-vtr: sw_if_index 1 dst ff:ff:ff:ff:ff:ff src a0:36:9f:55:6e:88 data 
81 00 00 0a 08 06 00 01 08 00 06 04
00:00:49:249389: l2-learn
  l2-learn: sw_if_index 1 dst ff:ff:ff:ff:ff:ff src a0:36:9f:55:6e:88 bd_index 1
00:00:49:249392: l2-flood
  l2-flood: sw_if_index 1 dst 00:01:08:00:06:04 src 00:01:a0:36:9f:55 bd_index 1
00:00:49:249396: arp-input
  request, type ethernet/IP4, address size 6/4
  a0:36:9f:55:6e:88/192.168.10.100 -> 00:00:00:00:00:00/192.168.10.1
00:00:49:249406: loop0-output
  loop0
  ARP: 00:00:81:00:00:0a -> 6e:88:de:ad:00:00
  reply, type ethernet/IP4, address size 6/4
  de:ad:00:00:00:00/192.168.10.1 -> a0:36:9f:55:6e:88/192.168.10.100
00:00:49:249414: l2-input
  l2-input: sw_if_index 5 dst 6e:88:de:ad:00:00 src 00:00:81:00:00:0a
00:00:49:249416: l2-fwd
  l2-fwd:   sw_if_index 5 dst 6e:88:de:ad:00:00 src 00:00:81:00:00:0a bd_index 1
00:00:49:249418: l2-flood
  l2-flood: sw_if_index 5 dst 6e:88:de:ad:00:00 src 00:00:81:00:00:0a bd_index 1
00:00:49:249420: l2-output
  l2-output: sw_if_index 1 dst 6e:88:de:ad:00:00 src 00:00:81:00:00:0a
00:00:49:249422: error-drop
  l2-output: L2 output tag rewrite drops

Am I using the wrong configuration lead to this result?


------------------ Original ------------------
From:  "John Lo (loj)";<l...@cisco.com<mailto:l...@cisco.com>>;
Date:  Fri, Jan 20, 2017 07:14 AM
To:  "Alfa"<76278...@qq.com<mailto:76278...@qq.com>>; 
"vpp-dev"<vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>>;
Subject:  RE: [vpp-dev] How to setup BVI with a ip address?

The config for VPP will be something like the following. Let's start with some 
of your existing config (also excluding some others):
create sub GigabitEthernetd/0/0 100
create sub GigabitEthernetd/0/1 100
create sub GigabitEthernetd/0/0 200
create sub GigabitEthernetd/0/1 200

set int state GigabitEthernetd/0/0 up
set int state GigabitEthernetd/0/1 up
set int state GigabitEthernetd/0/0.100 up
set int state GigabitEthernetd/0/0.200 up
set int state GigabitEthernetd/0/1.100 up
set int state GigabitEthernetd/0/1.200 up

set interface l2 bridge GigabitEthernetd/0/0.100 100
set interface l2 bridge GigabitEthernetd/0/1.100 100
set interface l2 bridge GigabitEthernetd/0/0.200 200
set interface l2 bridge GigabitEthernetd/0/1.200 200

Now we have two BDs 100 and 200 each with two VLAN sub-interfaces. We need to 
pop the VLAN tag as packets are received into the BD:
set int l2 tag-rewrite GigabitEthernetd/0/0.100 pop
set int l2 tag-rewrite GigabitEthernetd/0/0.200 pop
set int l2 tag-rewrite GigabitEthernetd/0/1.100 pop
set int l2 tag-rewrite GigabitEthernetd/0/1.200 pop

We add BVIs to each BD:
loop create
set int l2 bridge loop0 100 bvi
set int state loop0 up
set int ip address loop0 192.168.100.1/24
loop create
set int l2 bridge loop1 200 bvi
set int state loop1 up
set int ip address loop1 192.168.200.1/24

Now BVIs loop1 and loop2 can be utilized to route packets between BD 100 and BD 
200. The reason we need to pop VLAN tags into BD is that BVI interface is main 
and not VLAN sub-interfaces so cannot send packets into BD with VLAN tags.

HTH with regards,
John


From: vpp-dev-boun...@lists.fd.io<mailto:vpp-dev-boun...@lists.fd.io> 
[mailto:vpp-dev-boun...@lists.fd.io] On Behalf Of Alfa
Sent: Thursday, January 19, 2017 9:18 AM
To: vpp-dev <vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>>
Subject: [vpp-dev] How to setup BVI with a ip address?

Hi, guys, I want to set up topology like following:

             ----p4p1.100       ----     pc1 192.168.100.100/24, gw 
192.168.100.1
             |
br100----
             |
             ----p4p2.100      ----     pc2 192.168.100.200/24, gw 192.168.100.1

             ----p4p1.200      ----     pc3 192.168.200.100/24, gw 192.168.200.1
             |
br200----
             |
             ----p4p2.200      ----     pc4 192.168.200.200, gw 192.168.200.1

in linux, we can got the desired topology using following cmd:

vconfig add p4p1 100
vconfig add p4p2 100
brctl add br br100
brctl addif br100 p4p1.100
brctl addif br100 p4p2.100
ifconfig br100 192.168.100.1

vconfig add p4p1 200
vconfig add p4p2 200
brctl add br br200
brctl addif br200 p4p1.200
brctl addif br200 p4p2.200
ifconfig br200 192.168.200.1

sysctl -w net.ipv4.ip_forward=1

finally, we can ping from any pc to other pc.

I want to get the same topology like above, so I add following cmd in vpp, 
which config g/0/0 and g/0/1 to a trunk port with native vlan 1 and allowed 
vlan 100, 200.
How can I config svi(Switch Virtual Interface) of vlan 100 and vlan 200 in vpp? 
Could you plz give some reference to study? Thank you in advance!

create sub GigabitEthernetd/0/0 100
create sub GigabitEthernetd/0/1 100
create sub GigabitEthernetd/0/0 200
create sub GigabitEthernetd/0/1 200

set int state GigabitEthernetd/0/0 up
set int state GigabitEthernetd/0/1 up
set int state GigabitEthernetd/0/0.100 up
set int state GigabitEthernetd/0/0.200 up
set int state GigabitEthernetd/0/1.100 up
set int state GigabitEthernetd/0/1.200 up

# GigabitEthernetd/0/0 native vlan 1, allowed vlan 100, 200
# GigabitEthernetd/0/1 native vlan 1, allowed vlan 100, 200

set interface l2 bridge GigabitEthernetd/0/0 1
set interface l2 tag-rewrite GigabitEthernetd/0/0 push dot1q 1

set interface l2 bridge GigabitEthernetd/0/1 1
set interface l2 tag-rewrite GigabitEthernetd/0/1 push dot1q 1

set interface l2 bridge GigabitEthernetd/0/0.100 100
set interface l2 bridge GigabitEthernetd/0/1.100 100
set interface l2 bridge GigabitEthernetd/0/0.200 200
set interface l2 bridge GigabitEthernetd/0/1.200 200


_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to