Git Product home page Git Product logo

Comments (4)

bluenet13 avatar bluenet13 commented on June 2, 2024

The max IP fragmentaion is defined in DPDK.
What is ans verson do you use? Your version is very old.
Shall use ans_iface_set_mtu to set MTU.

from dpdk-ans.

up0617 avatar up0617 commented on June 2, 2024

Thanks for the quick answering.

(I'm using the latest version. I saw old API netdp*** at the old issue in 2016.)

For the fragmentation,
I ran DPDK IP fragmentation example and it well fragments packet as its MTU configured.

As I know, IP fragmentation is not a sort of EAL option but can be enabled by related API like 'rte_ip_frag.h->rte_ipv4_fragment_packet()'.

Following the ans.map file, 'rte_ip_frag.h' and 'rte_ipv4_fragment_packet()' are already imported and used.

Also anscli shows mtu is set as 1500, in below
ans> ip addr show veth0: mtu 1500

Then what I anticipate is that, 5800B data should be fragmented to 1500B size and sent.

But it doesn't as shown anscli stats

ans> ip stats show
Total packets received :7448
Checksum bad :0
Packet too short :0
Not enough data :0
IP header length < data size :0
IP length < ip header length :0
Fragments received :0
Frags dropped (dups, out of space) :0
Fragments timed out :0
Packets forwarded :2320
Packets fast forwarded :0
Packets rcvd for unreachable dest :0
Packets forwarded on same net :2320
Unknown or unsupported protocol :0
Datagrams delivered to upper level :5128
Total ip packets generated here :3608
Lost packets due to nobufs, etc. :0
Total packets reassembled ok :0
Datagrams successfully fragmented :0
Output fragments created :0
Don't fragment flag was set, etc. :0
Error in option processing :0
Packets discarded due to no route :0
IP version != 4 :0
Total raw ip packets generated :0
IP length > max ip packet size :0
Multicasts for unregistered grps :0
No match gif found :0
Invalid address on header :0
Packets filtered :0

from dpdk-ans.

bluenet13 avatar bluenet13 commented on June 2, 2024

The limitaion in DPDK:
/* ip_fragmentation defines */
#define RTE_LIBRTE_IP_FRAG_MAX_FRAG 4

You may try 3000B.

from dpdk-ans.

up0617 avatar up0617 commented on June 2, 2024

Oh Thanks very much for your answer.

IP Fragmentation is actually works at 5800B, for exactly up to 5912B packet Send.
5912B = (1514(mtu)-34(header) ) * 4(max frag) - 8(udp header of reassembled packet)

Wireshark shows UDP+ IPv4 packets are well fragmented up to 1514.
but anscli only shows stats about Frags only when there are drops, like below::

//when send more then mtu*maxFrag
Frags dropped (dups, out of space) :1816

//when recv kernel dump shows ip fragmented well but cli is not.
Datagrams successfully fragmented :0
Output fragments created :0

It's all clear about IP fragmentation.
Thanks for your help again!

from dpdk-ans.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.