Ashwin,
ULONG is 4 bytes long so ULONG[2048*32] is 256k, not 64k. The array must be ULONG-aligned but you can still define it as UCHAR which is 1 byte: static UCHAR packet_pool_area[2048*32] __attribute__((aligned(4)));
You don't need anywhere near as much space as long as you limit the upload rate to a reasonable number (I tried with 20kB/s and it worked well).