kProto_TCP = IPPROTO_TCP,
kProto_DCCP = IPPROTO_DCCP,
kProto_UDP = IPPROTO_UDP,
+ kProto_UDPLITE = IPPROTO_UDPLITE,
} Protocol;
static inline const char *protoName(const unsigned proto)
case kProto_TCP: return "TCP";
case kProto_DCCP: return "DCCP";
case kProto_UDP: return "UDP";
+ case kProto_UDPLITE: return "UDP-Lite";
default: return "(unknown)";
}
}
{
switch (p) {
case kProto_TCP: return SOCK_STREAM;
+ case kProto_UDPLITE: /* fall through */
case kProto_UDP: return SOCK_DGRAM;
case kProto_DCCP: return SOCK_DCCP;
}
static inline bool is_connectionless(const Protocol p)
{
- return p == kProto_UDP;
+ return p == kProto_UDP || p == kProto_UDPLITE;
}
// server/client mode
// chars
char mFormat; // -f
int mTTL; // -T
+ int cscov; // -u (partial csums)
char *congAlgo; // -A
char pad1[2];
// structs or miscellaneous