authorgravatar for vincent@rischmann.frVincent Rischmann <vincent@rischmann.fr> 2021-04-04 00:44:32+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2021-04-04 20:43:41+03:00
log5ce45240277a6383731ef5e371e5dcbb36ada343
tree1ca4b2abc1b2f70f29e3508a192df390b472068a
parente4563860feba97626630d15f481c6ad19348b81f

os/bits/linux: add IPv6 socket options


1 files changed, 86 insertions(+), 0 deletions(-)

lib/std/os/bits/linux.zig+86
......@@ -586,6 +586,92 @@ pub const IP_DEFAULT_MULTICAST_TTL = 1;
586586pub const IP_DEFAULT_MULTICAST_LOOP = 1;
587587pub const IP_MAX_MEMBERSHIPS = 20;
588588
589// IPv6 socket options
590
591pub const IPV6_ADDRFORM = 1;
592pub const IPV6_2292PKTINFO = 2;
593pub const IPV6_2292HOPOPTS = 3;
594pub const IPV6_2292DSTOPTS = 4;
595pub const IPV6_2292RTHDR = 5;
596pub const IPV6_2292PKTOPTIONS = 6;
597pub const IPV6_CHECKSUM = 7;
598pub const IPV6_2292HOPLIMIT = 8;
599pub const IPV6_NEXTHOP = 9;
600pub const IPV6_AUTHHDR = 10;
601pub const IPV6_FLOWINFO = 11;
602
603pub const IPV6_UNICAST_HOPS = 16;
604pub const IPV6_MULTICAST_IF = 17;
605pub const IPV6_MULTICAST_HOPS = 18;
606pub const IPV6_MULTICAST_LOOP = 19;
607pub const IPV6_ADD_MEMBERSHIP = 20;
608pub const IPV6_DROP_MEMBERSHIP = 21;
609pub const IPV6_ROUTER_ALERT = 22;
610pub const IPV6_MTU_DISCOVER = 23;
611pub const IPV6_MTU = 24;
612pub const IPV6_RECVERR = 25;
613pub const IPV6_V6ONLY = 26;
614pub const IPV6_JOIN_ANYCAST = 27;
615pub const IPV6_LEAVE_ANYCAST = 28;
616
617// IPV6_MTU_DISCOVER values
618pub const IPV6_PMTUDISC_DONT = 0;
619pub const IPV6_PMTUDISC_WANT = 1;
620pub const IPV6_PMTUDISC_DO = 2;
621pub const IPV6_PMTUDISC_PROBE = 3;
622pub const IPV6_PMTUDISC_INTERFACE = 4;
623pub const IPV6_PMTUDISC_OMIT = 5;
624
625// Flowlabel
626pub const IPV6_FLOWLABEL_MGR = 32;
627pub const IPV6_FLOWINFO_SEND = 33;
628pub const IPV6_IPSEC_POLICY = 34;
629pub const IPV6_XFRM_POLICY = 35;
630pub const IPV6_HDRINCL = 36;
631
632// Advanced API (RFC3542) (1)
633pub const IPV6_RECVPKTINFO = 49;
634pub const IPV6_PKTINFO = 50;
635pub const IPV6_RECVHOPLIMIT = 51;
636pub const IPV6_HOPLIMIT = 52;
637pub const IPV6_RECVHOPOPTS = 53;
638pub const IPV6_HOPOPTS = 54;
639pub const IPV6_RTHDRDSTOPTS = 55;
640pub const IPV6_RECVRTHDR = 56;
641pub const IPV6_RTHDR = 57;
642pub const IPV6_RECVDSTOPTS = 58;
643pub const IPV6_DSTOPTS = 59;
644pub const IPV6_RECVPATHMTU = 60;
645pub const IPV6_PATHMTU = 61;
646pub const IPV6_DONTFRAG = 62;
647
648// Advanced API (RFC3542) (2)
649pub const IPV6_RECVTCLASS = 66;
650pub const IPV6_TCLASS = 67;
651
652pub const IPV6_AUTOFLOWLABEL = 70;
653
654// RFC5014: Source address selection
655pub const IPV6_ADDR_PREFERENCES = 72;
656
657pub const IPV6_PREFER_SRC_TMP = 0x0001;
658pub const IPV6_PREFER_SRC_PUBLIC = 0x0002;
659pub const IPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x0100;
660pub const IPV6_PREFER_SRC_COA = 0x0004;
661pub const IPV6_PREFER_SRC_HOME = 0x0400;
662pub const IPV6_PREFER_SRC_CGA = 0x0008;
663pub const IPV6_PREFER_SRC_NONCGA = 0x0800;
664
665// RFC5082: Generalized Ttl Security Mechanism
666pub const IPV6_MINHOPCOUNT = 73;
667
668pub const IPV6_ORIGDSTADDR = 74;
669pub const IPV6_RECVORIGDSTADDR = IPV6_ORIGDSTADDR;
670pub const IPV6_TRANSPARENT = 75;
671pub const IPV6_UNICAST_IF = 76;
672pub const IPV6_RECVFRAGSIZE = 77;
673pub const IPV6_FREEBIND = 78;
674
589675pub const MSG_OOB = 0x0001;
590676pub const MSG_PEEK = 0x0002;
591677pub const MSG_DONTROUTE = 0x0004;