Skip to content

IPv6 support #20

@fracappa

Description

@fracappa

Currently, the implemented load balancer logic supports only IPv4 traffic.

Support for IPv6 should be implemented as well.

Currently, the session key is only designed for IPv4 traffic:

struct flow_key {
    __be32 src_ip;
    __be32 dst_ip;
    __be16 src_port;
    __be16 dst_port;
    __u8   protocol;
} __attribute__((packed));

It needs to be changed to something like the following to support also IPv6:

struct flow_key {
    uint8_t ip_version;  
    uint8_t protocol;
    union {
             __be32  src_ipv4;
             __be32 src_ipv6 [4];
     } src_addr;
    union {
           __be32  dst_ipv4;
           __be32 dst_ipv6[4];
   } dst_addr;
    __be16 src_port;   
    __be16 dst_port;    
} __attribute__((packed)); 

Also the remaining logic should be adjusted accordingly as IPv6 packets have different headers than IPv4 ones.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions