Hi Xyxue,

Could you please explain what you want to achieve with this config? Where do 
you want to start your SR policy?
None of the configs that you described below for P will work.

In the case #1 you are creating a SR policy with BSID 33. Then for any packet 
with incoming label 33 you will push the SID list of the SR policy. However, 
you are also creating an mpls local-label for 33 as well which you do not need.
On top of that, you are configuring the SR policy with SID list < 60 >, but you 
have not set a local-label/route for 60. Hence packet will be dropped.

Thanks.

Cheers,
Pablo.

From: <vpp-dev-boun...@lists.fd.io> on behalf of 薛欣颖 <xy...@fiberhome.com>
Date: Tuesday, 28 November 2017 at 08:08
To: vpp-dev <vpp-dev@lists.fd.io>
Subject: [vpp-dev] SR MPLS not effective


Hi guys,

I have tried every configuration I can guess. The sr mpls still not effective 
on my vpp.
Can you give me an effective configuration, or can you help figure out the 
error in my configuration?

PE1 - P - PE2

PE1 configuration:
  create host-interface name eth4 mac 00:0c:29:4d:af:b5
  create host-interface name eth2 mac 00:0c:29:4d:af:a1
  set interface state host-eth2 up
  set interface state host-eth4 up
  set interface ip table host-eth4 1
  set interface ip address host-eth2 14.1.1.1/24
  set interface ip address host-eth4 21.1.1.1/24
  create mpls tunnel out-label 33 out-label 53 via 14.1.1.2 host-eth2
  set interface state mpls-tunnel0 up
  mpls table add 0
  set interface mpls host-eth2 enable
  ip route add 23.1.1.1/24 via interface mpls-tunnel0 table 1
  mpls local-label add eos 1053 ip4-lookup-in-table 1
  mpls local-label add non-eos 1060 mpls-lookup-in-table 0

PE2 configuration:
  create host-interface name eth3 mac 00:0c:29:19:8e:76
  create host-interface name eth5 mac 00:0c:29:19:8e:8a
  set interface state host-eth3 up
  set interface state host-eth5 up
  set interface ip address host-eth3 12.1.1.2/24
  set interface ip table host-eth5 1
  set interface ip address host-eth5 23.1.1.1/24
  mpls table add 0
  mpls table add 1
  mpls local-label add non-eos 60 mpls-lookup-in-table 0
  mpls local-label add eos 53 ip4-lookup-in-table 1
  set interface mpls host-eth5 enable
  set interface mpls host-eth3 enable
  create mpls tunnel out-label 1023 out-label 1053 via 12.1.1.1 host-eth3
  set interface state mpls-tunnel0 up
  ip route add 21.1.1.0/24 via interface mpls-tunnel0 table 1

P configuration:
(only modify the configuration on P)
1. drop packet.(when decap outer label,can't encap outer label) the 
configuration and trace is following:
 create host-interface name eth2 mac 00:0c:29:0f:e2:a8
  create host-interface name eth3 mac 00:0c:29:0f:e2:b2
  set interface state host-eth2 up
  set interface state host-eth3 up
  set interface ip address host-eth3 12.1.1.1/24
  mpls table add 0
  mpls table add 1
  set interface mpls host-eth2 enable
  set interface mpls host-eth3 enable
  mpls local-label add non-eos 33 mpls-lookup-in-table 0
  set interface ip address host-eth2 14.1.1.2/24
  mpls local-label add eos 53 ip4-lookup-in-table 0
  mpls local-label add eos 1053 ip4-lookup-in-table 0
  mpls local-label add non-eos 1023 mpls-lookup-in-table 0
  sr mpls policy add bsid 33 next 60

  00:08:35:510564: af-packet-input
  af_packet: hw_if_index 1 next-index 4
    tpacket2_hdr:
      status 0x20000001 len 86 snaplen 86 mac 66 net 80
      sec 0x5a1cbe94 nsec 0x1ea50e69 vlan 0
00:08:35:510591: ethernet-input
  MPLS: 00:0c:29:4d:af:a1 -> 00:0c:29:0f:e2:a8
00:08:35:510650: mpls-input
  MPLS: next mpls-lookup[1]  label 33 ttl 255
00:08:35:510657: mpls-lookup
  MPLS: next [0], lookup fib index 0, LB index 26 hash 0 label 33 eos 0
00:08:35:510666: error-drop
  mpls-input: MPLS DROP DPO

2.replace 'sr mpls policy add bsid 33 next 60' with 'sr mpls policy add bsid 
4001 next 60'. the trace info is following:
00:15:38:655991: af-packet-input
  af_packet: hw_if_index 1 next-index 4
    tpacket2_hdr:
      status 0x20000001 len 86 snaplen 86 mac 66 net 80
      sec 0x5a1cc03b nsec 0x1225fbd8 vlan 0
00:15:38:656023: ethernet-input
  MPLS: 00:0c:29:4d:af:a1 -> 00:0c:29:0f:e2:a8
00:15:38:656089: mpls-input
  MPLS: next mpls-lookup[1]  label 33 ttl 255
00:15:38:656100: mpls-lookup
  MPLS: next [6], lookup fib index 0, LB index 26 hash 0 label 33 eos 0
00:15:38:656130: lookup-mpls-dst
     fib-index:0 hdr:[53:255:0:eos] load-balance:31
00:15:38:656137: ip4-mpls-label-disposition
  disp:0
00:15:38:656144: lookup-ip4-dst
     fib-index:0 addr:23.1.1.5 load-balance:1
00:15:38:656151: ip4-drop
    ICMP: 21.1.1.5 -> 23.1.1.5
      tos 0x00, ttl 63, length 64, checksum 0x4db1
      fragment id 0x0001
    ICMP echo_request checksum 0x5f5d
00:15:38:656160: error-drop
  ip4-mpls-label-disposition: valid ip4 packets

3.add the mpls tunnel configuration, remove static routing configuration, the 
configuration and trace is following:
create host-interface name eth2 mac 00:0c:29:0f:e2:a8
  create host-interface name eth3 mac 00:0c:29:0f:e2:b2
  set interface state host-eth2 up
  set interface state host-eth3 up
  set interface ip address host-eth3 12.1.1.1/24
  mpls table add 0
  mpls table add 1
  set interface mpls host-eth2 enable
  set interface mpls host-eth3 enable
  mpls local-label add non-eos 33 mpls-lookup-in-table 0
  set interface ip address host-eth2 14.1.1.2/24
  mpls local-label add eos 53 ip4-lookup-in-table 0
  mpls local-label add eos 1053 ip4-lookup-in-table 0
  mpls local-label add non-eos 1023 mpls-lookup-in-table 0
  sr mpls policy add bsid 4001 next 60
  create mpls tunnel out-label 60 out-label 53 via 12.1.1.2 host-eth3
  set interface state mpls-tunnel0 up

  00:05:36:319144: af-packet-input
  af_packet: hw_if_index 1 next-index 4
    tpacket2_hdr:
      status 0x20000001 len 86 snaplen 86 mac 66 net 80
      sec 0x5a1cfd63 nsec 0x1dabd081 vlan 0
00:05:36:319169: ethernet-input
  MPLS: 00:0c:29:4d:af:a1 -> 00:0c:29:0f:e2:a8
00:05:36:319225: mpls-input
  MPLS: next mpls-lookup[1]  label 33 ttl 255
00:05:36:319231: mpls-lookup
  MPLS: next [6], lookup fib index 0, LB index 26 hash 0 label 33 eos 0
00:05:36:319238: lookup-mpls-dst
     fib-index:0 hdr:[53:255:0:eos] load-balance:31
00:05:36:319243: ip4-mpls-label-disposition
  disp:0
00:05:36:319249: lookup-ip4-dst
     fib-index:0 addr:23.1.1.5 load-balance:1
00:05:36:319254: ip4-drop
    ICMP: 21.1.1.5 -> 23.1.1.5
      tos 0x00, ttl 63, length 64, checksum 0x4db1
      fragment id 0x0001
    ICMP echo_request checksum 0x5f5d
00:05:36:319260: error-drop
  ip4-mpls-label-disposition: valid ip4 packets

4.only decap the outer label, enable mpls tunnel only one label:
  create host-interface name eth2 mac 00:0c:29:0f:e2:a8
  create host-interface name eth3 mac 00:0c:29:0f:e2:b2
  set interface state host-eth2 up
  set interface state host-eth3 up
  set interface ip address host-eth3 12.1.1.1/24
  mpls table add 0
  mpls table add 1
  set interface mpls host-eth2 enable
  set interface mpls host-eth3 enable
  mpls local-label add non-eos 33 mpls-lookup-in-table 0
  set interface ip address host-eth2 14.1.1.2/24
  create mpls tunnel out-label 60 via 12.1.1.2 host-eth3
  sr mpls policy add bsid 4001 next 60
  set interface state mpls-tunnel0 up

  00:06:13:222299: af-packet-input
  af_packet: hw_if_index 1 next-index 4
    tpacket2_hdr:
      status 0x20000001 len 86 snaplen 86 mac 66 net 80
      sec 0x5a1cce7a nsec 0x228cce67 vlan 0
00:06:13:222341: ethernet-input
  MPLS: 00:0c:29:4d:af:a1 -> 00:0c:29:0f:e2:a8
00:06:13:222441: mpls-input
  MPLS: next mpls-lookup[1]  label 33 ttl 255
00:06:13:222456: mpls-lookup
  MPLS: next [6], lookup fib index 0, LB index 26 hash 0 label 33 eos 0
00:06:13:222471: lookup-mpls-dst
     fib-index:0 hdr:[53:255:0:eos] load-balance:13
00:06:13:222485: error-drop
  mpls-input: MPLS DROP DPO

Thanks,
xyxue


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

Reply via email to