VPP-43 NSH removal progress


Keith Burns <alagalah@...>
 

Got VXLAN-GPE separated from NSH

Just have to find a way to test GRE and it should be pretty straight forward to make generic GRE talk to new NSH node. Then I'll publish patch for review.

New commands:
vxlan-gpe tunnel:
vxlan-gpe tunnel local 192.168.150.90 remote 192.168.150.91 vni 16777215 next-nsh
(note next-nsh is not necessary... this is just there for classifier case... its not really needed at all)

nsh entry: (defines an NSH header)
nsh entry nsp 1 nsi 255  c1 9901 c2 9902 c3 9903 c4 9904 md-type 1

nsh map: maps two nsh headers together. Note that if you do "encap-none" it will attempt to decap it ... this is not currently supported and can be done in NSH_SFC
nsh map nsp 1 nsi 255 mapped-nsp 1 mapped-nsi 255 encap-vxlan-gpe-intf 6


Packet 6

00:00:14:216827: dpdk-input
  GigabitEthernet0/5/0 rx queue 0
  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5
  PKT MBUF: port 0, nb_segs 1, pkt_len 106
    buf_len 2176, data_len 106, ol_flags 0x0,
    packet_type 0x0
  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f
  UDP: 192.168.150.91 -> 192.168.150.90
    tos 0x00, ttl 64, length 92, checksum 0x4d08
    fragment id 0x3f82, flags DONT_FRAGMENT
  UDP: 4790 -> 4790
    length 72, checksum 0x9947
00:00:14:216861: ethernet-input
  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f
00:00:14:216875: ip4-input
  UDP: 192.168.150.91 -> 192.168.150.90
    tos 0x00, ttl 64, length 92, checksum 0x4d08
    fragment id 0x3f82, flags DONT_FRAGMENT
  UDP: 4790 -> 4790
    length 72, checksum 0x9947
00:00:14:216888: ip4-local
  fib 0 adj-idx 4 : local 192.168.150.90/24 flow hash: 0x00000000
00:00:14:216898: ip4-udp-lookup
  UDP: src-port 4790 dst-port 4790
00:00:14:216908: vxlan-gpe-input
  VXLAN-GPE: tunnel 0 next 4 error 0
00:00:14:216917: nsh-input

  nsh ver 0 len 0 (0 bytes) md_type 1 next_protocol 1
  service path 1 service index 255
  c1 9901 c2 9902 c3 9903 c4 9904

00:00:14:216925: vxlan-gpe-encap
  VXLAN-GPE-ENCAP: tunnel 0
00:00:14:216932: ip4-rewrite-transit
  fib 0 adj-idx 5 : GigabitEthernet0/5/0
                    IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5 flow hash: 0x00000000
  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5
  UDP: 192.168.150.90 -> 192.168.150.91
    tos 0x00, ttl 253, length 92, checksum 0x0f8a
    fragment id 0x0000
  UDP: 4790 -> 4790
    length 72, checksum 0x0000
00:00:14:216944: GigabitEthernet0/5/0-output
  GigabitEthernet0/5/0
  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5
  UDP: 192.168.150.90 -> 192.168.150.91
    tos 0x00, ttl 253, length 92, checksum 0x0f8a
    fragment id 0x0000
  UDP: 4790 -> 4790
    length 72, checksum 0x0000
00:00:14:216952: GigabitEthernet0/5/0-tx
  GigabitEthernet0/5/0 tx queue 0
  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5
  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5
  UDP: 192.168.150.90 -> 192.168.150.91
    tos 0x00, ttl 253, length 92, checksum 0x0f8a
    fragment id 0x0000
  UDP: 4790 -> 4790
    length 72, checksum 0x0000


Ni, Hongjun
 

Hi Keith,

 

Just a question about the nsh map:

 

For both nsh headers that have the same SPI and SI, are the context data of them the same?

 

If they are not, how can distinguish these two nsh headers?

 

Thanks,

Hongjun

 

From: nsh_sfc-dev-bounces@... [mailto:nsh_sfc-dev-bounces@...] On Behalf Of Keith Burns
Sent: Monday, May 9, 2016 6:37 AM
To: nsh_sfc-dev@...; Dave Barach <dbarach@...>; Ed Warnicke (eaw) <eaw@...>
Subject: [nsh_sfc-dev] VPP-43 NSH removal progress

 

Got VXLAN-GPE separated from NSH

 

Just have to find a way to test GRE and it should be pretty straight forward to make generic GRE talk to new NSH node. Then I'll publish patch for review.

 

New commands:

vxlan-gpe tunnel:

vxlan-gpe tunnel local 192.168.150.90 remote 192.168.150.91 vni 16777215 next-nsh

(note next-nsh is not necessary... this is just there for classifier case... its not really needed at all)

 

nsh entry: (defines an NSH header)

nsh entry nsp 1 nsi 255  c1 9901 c2 9902 c3 9903 c4 9904 md-type 1

 

nsh map: maps two nsh headers together. Note that if you do "encap-none" it will attempt to decap it ... this is not currently supported and can be done in NSH_SFC

nsh map nsp 1 nsi 255 mapped-nsp 1 mapped-nsi 255 encap-vxlan-gpe-intf 6

 

 

Packet 6

 

00:00:14:216827: dpdk-input

  GigabitEthernet0/5/0 rx queue 0

  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5

  PKT MBUF: port 0, nb_segs 1, pkt_len 106

    buf_len 2176, data_len 106, ol_flags 0x0,

    packet_type 0x0

  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f

  UDP: 192.168.150.91 -> 192.168.150.90

    tos 0x00, ttl 64, length 92, checksum 0x4d08

    fragment id 0x3f82, flags DONT_FRAGMENT

  UDP: 4790 -> 4790

    length 72, checksum 0x9947

00:00:14:216861: ethernet-input

  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f

00:00:14:216875: ip4-input

  UDP: 192.168.150.91 -> 192.168.150.90

    tos 0x00, ttl 64, length 92, checksum 0x4d08

    fragment id 0x3f82, flags DONT_FRAGMENT

  UDP: 4790 -> 4790

    length 72, checksum 0x9947

00:00:14:216888: ip4-local

  fib 0 adj-idx 4 : local 192.168.150.90/24 flow hash: 0x00000000

00:00:14:216898: ip4-udp-lookup

  UDP: src-port 4790 dst-port 4790

00:00:14:216908: vxlan-gpe-input

  VXLAN-GPE: tunnel 0 next 4 error 0

00:00:14:216917: nsh-input

 

  nsh ver 0 len 0 (0 bytes) md_type 1 next_protocol 1

  service path 1 service index 255

  c1 9901 c2 9902 c3 9903 c4 9904

 

00:00:14:216925: vxlan-gpe-encap

  VXLAN-GPE-ENCAP: tunnel 0

00:00:14:216932: ip4-rewrite-transit

  fib 0 adj-idx 5 : GigabitEthernet0/5/0

                    IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5 flow hash: 0x00000000

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

00:00:14:216944: GigabitEthernet0/5/0-output

  GigabitEthernet0/5/0

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

00:00:14:216952: GigabitEthernet0/5/0-tx

  GigabitEthernet0/5/0 tx queue 0

  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

 


Keith Burns <alagalah@...>
 

Hongjun,

Implementation detail we can sort out when we move to nshsfc repo but for now key is NSP NSI.

So you can't have the situation you describe.


On Sun, May 8, 2016, 7:26 PM Ni, Hongjun <hongjun.ni@...> wrote:

Hi Keith,

 

Just a question about the nsh map:

 

For both nsh headers that have the same SPI and SI, are the context data of them the same?

 

If they are not, how can distinguish these two nsh headers?

 

Thanks,

Hongjun

 

From: nsh_sfc-dev-bounces@... [mailto:nsh_sfc-dev-bounces@...] On Behalf Of Keith Burns
Sent: Monday, May 9, 2016 6:37 AM
To: nsh_sfc-dev@...; Dave Barach <dbarach@...>; Ed Warnicke (eaw) <eaw@...>
Subject: [nsh_sfc-dev] VPP-43 NSH removal progress

 

Got VXLAN-GPE separated from NSH

 

Just have to find a way to test GRE and it should be pretty straight forward to make generic GRE talk to new NSH node. Then I'll publish patch for review.

 

New commands:

vxlan-gpe tunnel:

vxlan-gpe tunnel local 192.168.150.90 remote 192.168.150.91 vni 16777215 next-nsh

(note next-nsh is not necessary... this is just there for classifier case... its not really needed at all)

 

nsh entry: (defines an NSH header)

nsh entry nsp 1 nsi 255  c1 9901 c2 9902 c3 9903 c4 9904 md-type 1

 

nsh map: maps two nsh headers together. Note that if you do "encap-none" it will attempt to decap it ... this is not currently supported and can be done in NSH_SFC

nsh map nsp 1 nsi 255 mapped-nsp 1 mapped-nsi 255 encap-vxlan-gpe-intf 6

 

 

Packet 6

 

00:00:14:216827: dpdk-input

  GigabitEthernet0/5/0 rx queue 0

  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5

  PKT MBUF: port 0, nb_segs 1, pkt_len 106

    buf_len 2176, data_len 106, ol_flags 0x0,

    packet_type 0x0

  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f

  UDP: 192.168.150.91 -> 192.168.150.90

    tos 0x00, ttl 64, length 92, checksum 0x4d08

    fragment id 0x3f82, flags DONT_FRAGMENT

  UDP: 4790 -> 4790

    length 72, checksum 0x9947

00:00:14:216861: ethernet-input

  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f

00:00:14:216875: ip4-input

  UDP: 192.168.150.91 -> 192.168.150.90

    tos 0x00, ttl 64, length 92, checksum 0x4d08

    fragment id 0x3f82, flags DONT_FRAGMENT

  UDP: 4790 -> 4790

    length 72, checksum 0x9947

00:00:14:216888: ip4-local

  fib 0 adj-idx 4 : local 192.168.150.90/24 flow hash: 0x00000000

00:00:14:216898: ip4-udp-lookup

  UDP: src-port 4790 dst-port 4790

00:00:14:216908: vxlan-gpe-input

  VXLAN-GPE: tunnel 0 next 4 error 0

00:00:14:216917: nsh-input

 

  nsh ver 0 len 0 (0 bytes) md_type 1 next_protocol 1

  service path 1 service index 255

  c1 9901 c2 9902 c3 9903 c4 9904

 

00:00:14:216925: vxlan-gpe-encap

  VXLAN-GPE-ENCAP: tunnel 0

00:00:14:216932: ip4-rewrite-transit

  fib 0 adj-idx 5 : GigabitEthernet0/5/0

                    IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5 flow hash: 0x00000000

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

00:00:14:216944: GigabitEthernet0/5/0-output

  GigabitEthernet0/5/0

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

00:00:14:216952: GigabitEthernet0/5/0-tx

  GigabitEthernet0/5/0 tx queue 0

  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

 


Ni, Hongjun
 

Hi Keith,

 

Got it.

 

Thanks,

Hongjun

 

From: Keith Burns [mailto:alagalah@...]
Sent: Monday, May 9, 2016 10:33 AM
To: Ni, Hongjun <hongjun.ni@...>; nsh_sfc-dev@...; Dave Barach <dbarach@...>; Ed Warnicke (eaw) <eaw@...>
Subject: Re: [nsh_sfc-dev] VPP-43 NSH removal progress

 

Hongjun,

Implementation detail we can sort out when we move to nshsfc repo but for now key is NSP NSI.

So you can't have the situation you describe.

 

On Sun, May 8, 2016, 7:26 PM Ni, Hongjun <hongjun.ni@...> wrote:

Hi Keith,

 

Just a question about the nsh map:

 

For both nsh headers that have the same SPI and SI, are the context data of them the same?

 

If they are not, how can distinguish these two nsh headers?

 

Thanks,

Hongjun

 

From: nsh_sfc-dev-bounces@... [mailto:nsh_sfc-dev-bounces@...] On Behalf Of Keith Burns
Sent: Monday, May 9, 2016 6:37 AM
To: nsh_sfc-dev@...; Dave Barach <dbarach@...>; Ed Warnicke (eaw) <eaw@...>
Subject: [nsh_sfc-dev] VPP-43 NSH removal progress

 

Got VXLAN-GPE separated from NSH

 

Just have to find a way to test GRE and it should be pretty straight forward to make generic GRE talk to new NSH node. Then I'll publish patch for review.

 

New commands:

vxlan-gpe tunnel:

vxlan-gpe tunnel local 192.168.150.90 remote 192.168.150.91 vni 16777215 next-nsh

(note next-nsh is not necessary... this is just there for classifier case... its not really needed at all)

 

nsh entry: (defines an NSH header)

nsh entry nsp 1 nsi 255  c1 9901 c2 9902 c3 9903 c4 9904 md-type 1

 

nsh map: maps two nsh headers together. Note that if you do "encap-none" it will attempt to decap it ... this is not currently supported and can be done in NSH_SFC

nsh map nsp 1 nsi 255 mapped-nsp 1 mapped-nsi 255 encap-vxlan-gpe-intf 6

 

 

Packet 6

 

00:00:14:216827: dpdk-input

  GigabitEthernet0/5/0 rx queue 0

  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5

  PKT MBUF: port 0, nb_segs 1, pkt_len 106

    buf_len 2176, data_len 106, ol_flags 0x0,

    packet_type 0x0

  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f

  UDP: 192.168.150.91 -> 192.168.150.90

    tos 0x00, ttl 64, length 92, checksum 0x4d08

    fragment id 0x3f82, flags DONT_FRAGMENT

  UDP: 4790 -> 4790

    length 72, checksum 0x9947

00:00:14:216861: ethernet-input

  IP4: 52:54:00:24:19:a5 -> 52:54:00:27:0b:2f

00:00:14:216875: ip4-input

  UDP: 192.168.150.91 -> 192.168.150.90

    tos 0x00, ttl 64, length 92, checksum 0x4d08

    fragment id 0x3f82, flags DONT_FRAGMENT

  UDP: 4790 -> 4790

    length 72, checksum 0x9947

00:00:14:216888: ip4-local

  fib 0 adj-idx 4 : local 192.168.150.90/24 flow hash: 0x00000000

00:00:14:216898: ip4-udp-lookup

  UDP: src-port 4790 dst-port 4790

00:00:14:216908: vxlan-gpe-input

  VXLAN-GPE: tunnel 0 next 4 error 0

00:00:14:216917: nsh-input

 

  nsh ver 0 len 0 (0 bytes) md_type 1 next_protocol 1

  service path 1 service index 255

  c1 9901 c2 9902 c3 9903 c4 9904

 

00:00:14:216925: vxlan-gpe-encap

  VXLAN-GPE-ENCAP: tunnel 0

00:00:14:216932: ip4-rewrite-transit

  fib 0 adj-idx 5 : GigabitEthernet0/5/0

                    IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5 flow hash: 0x00000000

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

00:00:14:216944: GigabitEthernet0/5/0-output

  GigabitEthernet0/5/0

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000

00:00:14:216952: GigabitEthernet0/5/0-tx

  GigabitEthernet0/5/0 tx queue 0

  buffer 0x10d33: current data 0, length 106, free-list 0, totlen-nifb 0, trace 0x5

  IP4: 52:54:00:27:0b:2f -> 52:54:00:24:19:a5

  UDP: 192.168.150.90 -> 192.168.150.91

    tos 0x00, ttl 253, length 92, checksum 0x0f8a

    fragment id 0x0000

  UDP: 4790 -> 4790

    length 72, checksum 0x0000