/* Generated by ./xlat/gen.sh from ./xlat/inet_diag_extended_flags.in; do not edit. */

#ifdef IN_MPERS

# error static const struct xlat inet_diag_extended_flags in mpers mode

#else

static
const struct xlat inet_diag_extended_flags[] = {
 XLAT(1<<(INET_DIAG_MEMINFO-1)),
 XLAT(1<<(INET_DIAG_INFO-1)),
 XLAT(1<<(INET_DIAG_VEGASINFO-1)),
 XLAT(1<<(INET_DIAG_CONG-1)),
 XLAT(1<<(INET_DIAG_TOS-1)),
 XLAT(1<<(INET_DIAG_TCLASS-1)),
 XLAT(1<<(INET_DIAG_SKMEMINFO-1)),
 XLAT(1<<(INET_DIAG_SHUTDOWN-1)),
 XLAT(1<<(INET_DIAG_DCTCPINFO-1)),
 XLAT(1<<(INET_DIAG_PROTOCOL-1)),
 XLAT(1<<(INET_DIAG_SKV6ONLY-1)),
 XLAT(1<<(INET_DIAG_LOCALS-1)),
 XLAT(1<<(INET_DIAG_PEERS-1)),
 XLAT(1<<(INET_DIAG_PAD-1)),
 XLAT(1<<(INET_DIAG_MARK-1)),
 XLAT(1<<(INET_DIAG_BBRINFO-1)),
 XLAT(1<<(INET_DIAG_CLASS_ID-1)),
 XLAT_END
};

#endif /* !IN_MPERS */
