Checking further into the code, I see that even if I put the ETH header in 
front, the packet is not matched against a gtp-vport, since the packet will be 
a layer2 packet. Even if I hardcodedly fetch a gtp vport, in tnl_find or 
tnl_find_exact, the rule of pushing back the GTP header will not be applied.

Could you please confirm this?

Regards,
Dincer

Dincer Beken
Software Developer

t: +49 8331 99 59-852<tel:+49%208331%2099%2059-852>

e: dbe...@blackned.de<mailto:dbe...@blackned.de>
w: https://blackned.de


                        [cid:blackned_d1650eb0-ca34-4593-90da-c73d0e84f2cd.png]

[cid:linkedin_d8fe2332-efbd-461a-923a-3153732a489e.png]<https://www.linkedin.com/company/8960382>


blackned GmbH · zugspitzstraße 1 · 87751 heimertingen
geschäftsführer: timo haas · hrb memmingen 17319

Diese eMail enthält vertrauliche und/oder rechtlich geschützte Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese eMail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und löschen Sie diese eMail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser eMail ist nicht 
gestattet.

This eMail may contain confidential and/or privileged information.
If you are not the intended recipient (or have received this eMail in error) 
please notify the sender immediately and delete this eMail.
Any unauthorized copying, disclosure or distribution of the contents in this 
eMail is strictly forbidden.

________________________________
Von: dev <ovs-dev-boun...@openvswitch.org> im Auftrag von Dincer Beken 
<dbe...@blackned.de>
Gesendet: Dienstag, 29. März 2022 03:12
An: ovs-dev@openvswitch.org <ovs-dev@openvswitch.org>
Betreff: Re: [ovs-dev] [EXTERNAL] Proper way to recirculate packet // OvS Crash

https://mail.openvswitch.org/pipermail/ovs-dev/2017-May/332897.html

https://www.youtube.com/watch?v=rOp1tUGIbYs

So essentially, this is what I am doing during the decapsulation, such that the 
OvS does not crash.

An additional question would be, if I need to specify an Input VPORt, as well?



Dincer Beken
Software Developer

t: +49 8331 99 59-852<tel:+49%208331%2099%2059-852>

e: dbe...@blackned.de<mailto:dbe...@blackned.de>
w: https://blackned.de


                        [cid:blackned_d1650eb0-ca34-4593-90da-c73d0e84f2cd.png]

[cid:linkedin_d8fe2332-efbd-461a-923a-3153732a489e.png]<https://www.linkedin.com/company/8960382>


blackned GmbH · zugspitzstraße 1 · 87751 heimertingen
geschäftsführer: timo haas · hrb memmingen 17319

Diese eMail enthält vertrauliche und/oder rechtlich geschützte Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese eMail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und löschen Sie diese eMail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser eMail ist nicht 
gestattet.

This eMail may contain confidential and/or privileged information.
If you are not the intended recipient (or have received this eMail in error) 
please notify the sender immediately and delete this eMail.
Any unauthorized copying, disclosure or distribution of the contents in this 
eMail is strictly forbidden.

________________________________
Von: dev <ovs-dev-boun...@openvswitch.org> im Auftrag von Dincer Beken 
<dbe...@blackned.de>
Gesendet: Dienstag, 29. März 2022 02:45
An: ovs-dev@openvswitch.org <ovs-dev@openvswitch.org>
Betreff: Re: [ovs-dev] [EXTERNAL] Proper way to recirculate packet // OvS Crash

Hello,

After looking further into the issue, after the decapsulation, the packet is a 
L3 packet without a L2 header anymore. If I push the ETH header manually, the 
received port cannot be matched anymore.

Do we have to push the ETH header (some random dummy), onto the decapsulated 
packet, before we encapsulate it again?

Thank you,
Dincer

Dincer Beken
Software Developer

t: +49 8331 99 59-852<tel:+49%208331%2099%2059-852>

e: dbe...@blackned.de<mailto:dbe...@blackned.de>
w: https://blackned.de


                        [cid:blackned_d1650eb0-ca34-4593-90da-c73d0e84f2cd.png]

[cid:linkedin_d8fe2332-efbd-461a-923a-3153732a489e.png]<https://www.linkedin.com/company/8960382>


blackned GmbH · zugspitzstraße 1 · 87751 heimertingen
geschäftsführer: timo haas · hrb memmingen 17319

Diese eMail enthält vertrauliche und/oder rechtlich geschützte Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese eMail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und löschen Sie diese eMail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser eMail ist nicht 
gestattet.

This eMail may contain confidential and/or privileged information.
If you are not the intended recipient (or have received this eMail in error) 
please notify the sender immediately and delete this eMail.
Any unauthorized copying, disclosure or distribution of the contents in this 
eMail is strictly forbidden.

________________________________
Von: dev <ovs-dev-boun...@openvswitch.org> im Auftrag von Dincer Beken 
<dbe...@blackned.de>
Gesendet: Dienstag, 29. März 2022 00:57
An: ovs-dev@openvswitch.org <ovs-dev@openvswitch.org>
Betreff: [EXTERNAL] [ovs-dev] Proper way to recirculate packet // OvS Crash

Hello,

I am using the userspace OvS (2.14.) and the userspace GTP tunnel.
I am decapsulating a GTP packet in table0 -> sending the decapsulated packet 
over to Table1, where I again want to encapsulate it again (with a different 
tunnel identifier) and submit to (another?) gtp port.

root@RiduxV4:~/Documents# ovs-vsctl show
3271f3b8-4aa6-40a2-af9b-37353238b104
    Bridge dp2
        Controller "tcp:127.0.0.1"
            is_connected: true
        datapath_type: netdev
        Port gtpu8
            Interface gtpu8
                type: gtpu
                options: {dst_port="2152", key=flow, remote_ip=flow}
        Port dp2
            Interface dp2
                type: internal
        Port gtpu9
            Interface gtpu9
                type: gtpu
                options: {dst_port="2152", key="0x00", 
remote_ip="192.168.177.101"}
        Port ethvlan1000
            Interface ethvlan1000
                type: internal

root@RiduxV4:~/Documents# ovs-ofctl dump-flows dp2
 cookie=0x1234, duration=277.786s, table=0, n_packets=30, n_bytes=2314, 
priority=1250,ip,in_port=eth1 actions=output:ethvlan1000

 cookie=0x1234, duration=277.736s, table=0, n_packets=1, n_bytes=34, 
priority=1400,ip,in_port=gtpu8 actions=mod_dl_dst:99:99:99:99:99:99,resubmit(,1)

 cookie=0x1234, duration=274.699s, table=1, n_packets=1, n_bytes=34, 
priority=1100,ip,in_port=gtpu8,nw_dst=192.168.10.3 
actions=load:0x55667701->NXM_NX_TUN_ID[],load:0xc0a8b164->NXM_NX_TUN_IPV4_DST[],output:gtpu8


So to repeat, the packet got decapsulated in table 0 and then moved over to 
table1 where it should be encapsulated again.

Encapsulation and Decapsulation work, only encapsulating a decapsulated packet, 
without leaving OvS does not work in Userspace.

If I select the output interface as the intput interface, OvS recognize this 
and does not allow it, so far so good.

But if I select the IN_PORt or another GTP tunnel (gtpu9), OvS crashes. I could 
not generate a core dump, yet.

compose_output_action__ ->         xlate_commit_actions(ctx);

Is there a possiblity to implement this in the userspace? Is there a way, to 
clear the actions stack, and send a fresh decapsulated packet in the 
recirculation, such that OvS does not recognize that it was encapsulated before?

Looking forward for your support,

Dincer

Dincer Beken
Software Developer

t: +49 8331 99 59-852<tel:+49%208331%2099%2059-852>

e: dbe...@blackned.de<mailto:dbe...@blackned.de>
w: https://blackned.de


                        [cid:blackned_d1650eb0-ca34-4593-90da-c73d0e84f2cd.png]

[cid:linkedin_d8fe2332-efbd-461a-923a-3153732a489e.png]<https://www.linkedin.com/company/8960382>


blackned GmbH · zugspitzstraße 1 · 87751 heimertingen
geschäftsführer: timo haas · hrb memmingen 17319

Diese eMail enthält vertrauliche und/oder rechtlich geschützte Informationen.
Wenn Sie nicht der richtige Adressat sind oder diese eMail irrtümlich erhalten 
haben, informieren Sie bitte sofort den Absender und löschen Sie diese eMail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser eMail ist nicht 
gestattet.

This eMail may contain confidential and/or privileged information.
If you are not the intended recipient (or have received this eMail in error) 
please notify the sender immediately and delete this eMail.
Any unauthorized copying, disclosure or distribution of the contents in this 
eMail is strictly forbidden.
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to