since your router is getting an internal ip address assigned to it by the cable modem
Actually, whatever address the ISP server assigns (via the modem) to the router is the router's "external" IP address but thats not relevant to the main issue.
and since you decided to point out that this is a kernel problem then don't you think this post should have been made in the kernel support forum instead of network support since its specifically a problem with the kernel you compiled.
We don't know yet whether the problem is with the kernel or some other networking-related system/config files that don't work with newer (2.6.20.x) kernels.
also when compiling your kernel make oldconfig is your friend.
I have tried various combinations (reusing an old .config and also creating a new one from scratch) but the problem of ping not responding has always been there.