demikernel
demikernel copied to clipboard
[pdpix] Support Scatter-Gather Arrays with Multiple Segments
Description
Demikernel currently has the limitation of single-segment scatter-gather arrays:
#define DMTR_SGARRAY_MAXSIZE 1
...
typedef struct dmtr_sgarray {
void *sga_buf;
uint32_t sga_numsegs;
dmtr_sgaseg_t sga_segs[DMTR_SGARRAY_MAXSIZE];
// todo: to be removed when LWIP libOS is retired in favor of
// `dpdk-catnip`.
struct sockaddr_in sga_addr;
} dmtr_sgarray_t;
We should support the creation of scatter-gatther arrays with multiple segments.
I am interested in fixing this issue since this is something I would like to use for a different project. Any pointers on how to approach will be great.
Hello @JayjeetAtGithub this change requires:
- Changing the layout of data structures
- Changing the code of all libOses to handle the proper allocation of multiple-segment scatter gather arrays.
I would recommend you start with Catnap, which is easier to fix.
Okay, I will try to raise a PR soon. Thanks.