Moved: This thread is more suitable in Linux-Kernel and has been moved accordingly to help your thread/question get the exposure it deserves.
The functions are in ip_fragment.c (in net/ipv4/ directory of the kernel sources). All that functionality is used by the input and output functions for IP.
If you plan to use that functionality without touching the code, you can setup normal routing and set MTU at the link out of the Linux machine to the desired value. Before being sent to the interface, the packets will get fragmented and you'll get what you want.