Kernel options required for ingress policer?
Haven't gotten a response for this on the LARTC list... hoping someone here may have an answer for me.
I'm trying to use the ingress policer on a custom kernel as follows, but having some problems:
# tc qdisc add dev eth1 handle ffff: ingress
# tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src \
0.0.0.0/0 police rate 384kbit burst 10k drop flowid :1
RTNETLINK answers: Invalid argumentThis is on a Fedora Core 2 based system, with a custom built 2.6.17.7 kernel.
The above commands work perfectly on a CentOS 4.x based system with a custom built 2.6.16 kernel. The hardware in both machines are identical and I used the 2.6.16 config from the CentOS machine to build the 2.6.17.7 kernel (did a make oldconfig). So the netfilter moudules, etc should be identical.
The network driver on both is the bcm5700 from HP.
tc with any egress filtering options works perfectly on the 2.6.17.7 box.
I can also run the ingress policer commands on identical hardware with Fedora Core 1 (using stock kernel). So I don't believe this is a result of the version of the iproute package.
Does anyone know the exact requirements of the ingress policer as far as the kernel is concerned? Below is my kernel config:
CONFIG_X86_32=yCONFIG_SEMAPHORE_SLEEPERS=yCONFIG_X86=yCONFIG_MMU=yCONFIG_GENERIC_ISA_DMA=yCONFIG_GENERIC_IOMAP=yCONFIG_GENERIC_HWEIGHT=yCONFIG_ARCH_MAY_HAVE_PC_FDC=yCONFIG_DMI=yCONFIG_EXPERIMENTAL=yCONFIG_BROKEN_ON_SMP=yCONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_LOCALVERSION=""CONFIG_LOCALVERSION_AUTO=yCONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_POSIX_MQUEUE=yCONFIG_BSD_PROCESS_ACCT=yCONFIG_SYSCTL=yCONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=yCONFIG_INITRAMFS_SOURCE=""CONFIG_UID16=yCONFIG_VM86=yCONFIG_CC_OPTIMIZE_FOR_SIZE=yCONFIG_KALLSYMS=yCONFIG_KALLSYMS_EXTRA_PASS=yCONFIG_HOTPLUG=yCONFIG_PRINTK=yCONFIG_BUG=yCONFIG_ELF_CORE=yCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_EPOLL=yCONFIG_SHMEM=yCONFIG_SLAB=yCONFIG_BASE_SMALL=0CONFIG_MODULES=yCONFIG_MODULE_UNLOAD=yCONFIG_KMOD=yCONFIG_LBD=yCONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_AS=yCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=yCONFIG_DEFAULT_AS=yCONFIG_DEFAULT_IOSCHED="anticipatory"CONFIG_X86_PC=yCONFIG_MPENTIUM4=yCONFIG_X86_GENERIC=yCONFIG_X86_CMPXCHG=yCONFIG_X86_XADD=yCONFIG_X86_L1_CACHE_SHIFT=7CONFIG_RWSEM_XCHGADD_ALGORITHM=yCONFIG_GENERIC_CALIBRATE_DELAY=yCONFIG_X86_WP_WORKS_OK=yCONFIG_X86_INVLPG=yCONFIG_X86_BSWAP=yCONFIG_X86_POPAD_OK=yCONFIG_X86_CMPXCHG64=yCONFIG_X86_GOOD_APIC=yCONFIG_X86_INTEL_USERCOPY=yCONFIG_X86_USE_PPRO_CHECKSUM=yCONFIG_X86_TSC=yCONFIG_PREEMPT_NONE=yCONFIG_X86_MCE=yCONFIG_MICROCODE=yCONFIG_X86_MSR=yCONFIG_X86_CPUID=yCONFIG_HIGHMEM4G=yCONFIG_PAGE_OFFSET=0xC0000000CONFIG_HIGHMEM=yCONFIG_ARCH_FLATMEM_ENABLE=yCONFIG_ARCH_SPARSEMEM_ENABLE=yCONFIG_ARCH_SELECT_MEMORY_MODEL=yCONFIG_SELECT_MEMORY_MODEL=yCONFIG_FLATMEM_MANUAL=yCONFIG_FLATMEM=yCONFIG_FLAT_NODE_MEM_MAP=yCONFIG_SPARSEMEM_STATIC=yCONFIG_SPLIT_PTLOCK_CPUS=4CONFIG_HIGHPTE=yCONFIG_MTRR=yCONFIG_SECCOMP=yCONFIG_HZ_250=yCONFIG_HZ=250CONFIG_PHYSICAL_START=0x100000CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=yCONFIG_PM=yCONFIG_PM_LEGACY=yCONFIG_ACPI=yCONFIG_ACPI_SLEEP=yCONFIG_ACPI_SLEEP_PROC_FS=yCONFIG_ACPI_AC=yCONFIG_ACPI_BATTERY=yCONFIG_ACPI_BUTTON=yCONFIG_ACPI_VIDEO=yCONFIG_ACPI_FAN=yCONFIG_ACPI_PROCESSOR=yCONFIG_ACPI_THERMAL=yCONFIG_ACPI_BLACKLIST_YEAR=0CONFIG_ACPI_EC=yCONFIG_ACPI_POWER=yCONFIG_ACPI_SYSTEM=yCONFIG_X86_PM_TIMER=yCONFIG_PCI=yCONFIG_PCI_GOANY=yCONFIG_PCI_BIOS=yCONFIG_PCI_DIRECT=yCONFIG_PCI_MMCONFIG=yCONFIG_ISA_DMA_API=yCONFIG_ISA=yCONFIG_BINFMT_ELF=yCONFIG_BINFMT_MISC=yCONFIG_NET=yCONFIG_PACKET=yCONFIG_PACKET_MMAP=yCONFIG_UNIX=yCONFIG_XFRM=yCONFIG_XFRM_USER=yCONFIG_NET_KEY=yCONFIG_INET=yCONFIG_IP_ADVANCED_ROUTER=yCONFIG_ASK_IP_FIB_HASH=yCONFIG_IP_FIB_HASH=yCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_FWMARK=yCONFIG_IP_ROUTE_MULTIPATH=yCONFIG_IP_ROUTE_VERBOSE=yCONFIG_NET_IPIP=yCONFIG_NET_IPGRE=yCONFIG_SYN_COOKIES=yCONFIG_INET_AH=yCONFIG_INET_ESP=yCONFIG_INET_IPCOMP=yCONFIG_INET_XFRM_TUNNEL=yCONFIG_INET_TUNNEL=yCONFIG_INET_DIAG=yCONFIG_INET_TCP_DIAG=yCONFIG_TCP_CONG_BIC=yCONFIG_NETFILTER=yCONFIG_BRIDGE_NETFILTER=yCONFIG_NETFILTER_NETLINK=mCONFIG_NETFILTER_NETLINK_QUEUE=mCONFIG_NETFILTER_NETLINK_LOG=mCONFIG_NETFILTER_XTABLES=mCONFIG_NETFILTER_XT_TARGET_CLASSIFY=mCONFIG_NETFILTER_XT_TARGET_MARK=mCONFIG_NETFILTER_XT_TARGET_NFQUEUE=mCONFIG_NETFILTER_XT_MATCH_COMMENT=mCONFIG_NETFILTER_XT_MATCH_CONNBYTES=mCONFIG_NETFILTER_XT_MATCH_CONNTRACK=mCONFIG_NETFILTER_XT_MATCH_DCCP=mCONFIG_NETFILTER_XT_MATCH_ESP=mCONFIG_NETFILTER_XT_MATCH_HELPER=mCONFIG_NETFILTER_XT_MATCH_LENGTH=mCONFIG_NETFILTER_XT_MATCH_LIMIT=mCONFIG_NETFILTER_XT_MATCH_MAC=mCONFIG_NETFILTER_XT_MATCH_MARK=mCONFIG_NETFILTER_XT_MATCH_POLICY=mCONFIG_NETFILTER_XT_MATCH_MULTIPORT=mCONFIG_NETFILTER_XT_MATCH_PKTTYPE=mCONFIG_NETFILTER_XT_MATCH_REALM=mCONFIG_NETFILTER_XT_MATCH_SCTP=mCONFIG_NETFILTER_XT_MATCH_STATE=mCONFIG_NETFILTER_XT_MATCH_STRING=mCONFIG_NETFILTER_XT_MATCH_TCPMSS=mCONFIG_IP_NF_CONNTRACK=yCONFIG_IP_NF_CT_ACCT=yCONFIG_IP_NF_CT_PROTO_SCTP=yCONFIG_IP_NF_FTP=yCONFIG_IP_NF_IRC=yCONFIG_IP_NF_TFTP=yCONFIG_IP_NF_AMANDA=yCONFIG_IP_NF_PPTP=mCONFIG_IP_NF_H323=mCONFIG_IP_NF_QUEUE=yCONFIG_IP_NF_IPTABLES=mCONFIG_IP_NF_MATCH_IPRANGE=mCONFIG_IP_NF_MATCH_TOS=mCONFIG_IP_NF_MATCH_RECENT=mCONFIG_IP_NF_MATCH_ECN=mCONFIG_IP_NF_MATCH_DSCP=mCONFIG_IP_NF_MATCH_AH=mCONFIG_IP_NF_MATCH_TTL=mCONFIG_IP_NF_MATCH_OWNER=mCONFIG_IP_NF_MATCH_ADDRTYPE=mCONFIG_IP_NF_MATCH_HASHLIMIT=mCONFIG_IP_NF_FILTER=mCONFIG_IP_NF_TARGET_REJECT=mCONFIG_IP_NF_TARGET_LOG=mCONFIG_IP_NF_TARGET_ULOG=mCONFIG_IP_NF_TARGET_TCPMSS=mCONFIG_IP_NF_NAT=mCONFIG_IP_NF_NAT_NEEDED=yCONFIG_IP_NF_TARGET_MASQUERADE=mCONFIG_IP_NF_TARGET_REDIRECT=mCONFIG_IP_NF_TARGET_NETMAP=mCONFIG_IP_NF_TARGET_SAME=mCONFIG_IP_NF_NAT_SNMP_BASIC=mCONFIG_IP_NF_NAT_IRC=mCONFIG_IP_NF_NAT_FTP=mCONFIG_IP_NF_NAT_TFTP=mCONFIG_IP_NF_NAT_AMANDA=mCONFIG_IP_NF_NAT_PPTP=mCONFIG_IP_NF_NAT_H323=mCONFIG_IP_NF_MANGLE=mCONFIG_IP_NF_TARGET_TOS=mCONFIG_IP_NF_TARGET_ECN=mCONFIG_IP_NF_TARGET_DSCP=mCONFIG_IP_NF_TARGET_TTL=mCONFIG_IP_NF_RAW=mCONFIG_IP_NF_ARPTABLES=mCONFIG_IP_NF_ARPFILTER=mCONFIG_IP_NF_ARP_MANGLE=mCONFIG_IP_SCTP=mCONFIG_SCTP_HMAC_MD5=yCONFIG_BRIDGE=yCONFIG_VLAN_8021Q=yCONFIG_LLC=yCONFIG_NET_SCHED=yCONFIG_NET_SCH_CLK_JIFFIES=yCONFIG_NET_SCH_CBQ=yCONFIG_NET_SCH_HTB=yCONFIG_NET_SCH_HFSC=yCONFIG_NET_SCH_PRIO=yCONFIG_NET_SCH_RED=yCONFIG_NET_SCH_SFQ=yCONFIG_NET_SCH_TEQL=yCONFIG_NET_SCH_TBF=yCONFIG_NET_SCH_GRED=yCONFIG_NET_SCH_DSMARK=yCONFIG_NET_SCH_NETEM=yCONFIG_NET_SCH_INGRESS=yCONFIG_NET_CLS=yCONFIG_NET_CLS_TCINDEX=yCONFIG_NET_CLS_ROUTE4=yCONFIG_NET_CLS_ROUTE=yCONFIG_NET_CLS_FW=yCONFIG_NET_CLS_U32=yCONFIG_CLS_U32_PERF=yCONFIG_NET_CLS_RSVP=yCONFIG_NET_CLS_RSVP6=yCONFIG_NET_CLS_POLICE=yCONFIG_NET_CLS_IND=yCONFIG_NET_ESTIMATOR=yCONFIG_STANDALONE=yCONFIG_PREVENT_FIRMWARE_BUILD=yCONFIG_CONNECTOR=yCONFIG_PNP=yCONFIG_ISAPNP=yCONFIG_PNPACPI=yCONFIG_BLK_DEV_FD=yCONFIG_BLK_DEV_LOOP=yCONFIG_BLK_DEV_CRYPTOLOOP=yCONFIG_BLK_DEV_NBD=yCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=16384CONFIG_BLK_DEV_INITRD=yCONFIG_IDE=yCONFIG_BLK_DEV_IDE=yCONFIG_BLK_DEV_IDEDISK=yCONFIG_IDEDISK_MULTI_MODE=yCONFIG_BLK_DEV_IDECD=yCONFIG_BLK_DEV_IDESCSI=yCONFIG_IDE_GENERIC=yCONFIG_BLK_DEV_IDEPCI=yCONFIG_IDEPCI_SHARE_IRQ=yCONFIG_BLK_DEV_GENERIC=yCONFIG_BLK_DEV_IDEDMA_PCI=yCONFIG_IDEDMA_PCI_AUTO=yCONFIG_BLK_DEV_PIIX=yCONFIG_BLK_DEV_SVWKS=yCONFIG_BLK_DEV_IDEDMA=yCONFIG_IDEDMA_AUTO=yCONFIG_SCSI=yCONFIG_SCSI_PROC_FS=yCONFIG_BLK_DEV_SD=yCONFIG_BLK_DEV_SR=yCONFIG_BLK_DEV_SR_VENDOR=yCONFIG_CHR_DEV_SG=yCONFIG_SCSI_SPI_ATTRS=yCONFIG_SCSI_FC_ATTRS=yCONFIG_SCSI_SATA=yCONFIG_SCSI_ATA_PIIX=yCONFIG_SCSI_SATA_INTEL_COMBINED=yCONFIG_MD=yCONFIG_BLK_DEV_MD=yCONFIG_MD_LINEAR=yCONFIG_MD_RAID0=yCONFIG_MD_RAID1=yCONFIG_MD_RAID10=yCONFIG_MD_RAID5=yCONFIG_MD_RAID6=yCONFIG_MD_MULTIPATH=yCONFIG_MD_FAULTY=yCONFIG_NETDEVICES=yCONFIG_DUMMY=yCONFIG_NET_ETHERNET=yCONFIG_MII=yCONFIG_NET_PCI=yCONFIG_TIGON3=mCONFIG_PPP=yCONFIG_PPP_MULTILINK=yCONFIG_PPP_FILTER=yCONFIG_PPP_ASYNC=yCONFIG_PPP_SYNC_TTY=yCONFIG_PPP_DEFLATE=yCONFIG_PPP_BSDCOMP=yCONFIG_PPP_MPPE=yCONFIG_NETCONSOLE=yCONFIG_NETPOLL=yCONFIG_NET_POLL_CONTROLLER=yCONFIG_INPUT=yCONFIG_INPUT_MOUSEDEV=yCONFIG_INPUT_MOUSEDEV_SCREEN_X=1024CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768CONFIG_INPUT_KEYBOARD=yCONFIG_KEYBOARD_ATKBD=yCONFIG_INPUT_MOUSE=yCONFIG_MOUSE_PS2=yCONFIG_MOUSE_SERIAL=yCONFIG_INPUT_MISC=yCONFIG_INPUT_PCSPKR=yCONFIG_INPUT_UINPUT=yCONFIG_SERIO=yCONFIG_SERIO_I8042=yCONFIG_SERIO_LIBPS2=yCONFIG_VT=yCONFIG_VT_CONSOLE=yCONFIG_HW_CONSOLE=yCONFIG_SERIAL_8250=yCONFIG_SERIAL_8250_CONSOLE=yCONFIG_SERIAL_8250_PCI=yCONFIG_SERIAL_8250_PNP=yCONFIG_SERIAL_8250_NR_UARTS=1024CONFIG_SERIAL_8250_RUNTIME_UARTS=4CONFIG_SERIAL_8250_EXTENDED=yCONFIG_SERIAL_8250_SHARE_IRQ=yCONFIG_SERIAL_8250_DETECT_IRQ=yCONFIG_SERIAL_8250_RSA=yCONFIG_SERIAL_CORE=yCONFIG_SERIAL_CORE_CONSOLE=yCONFIG_UNIX98_PTYS=yCONFIG_HW_RANDOM=yCONFIG_NVRAM=yCONFIG_RTC=yCONFIG_AGP=yCONFIG_AGP_ATI=yCONFIG_AGP_INTEL=yCONFIG_HANGCHECK_TIMER=yCONFIG_I2C=yCONFIG_I2C_CHARDEV=yCONFIG_I2C_ALGOBIT=yCONFIG_I2C_ALGOPCF=yCONFIG_I2C_ALGOPCA=yCONFIG_I2C_I801=yCONFIG_I2C_I810=yCONFIG_I2C_PIIX4=yCONFIG_I2C_ISA=yCONFIG_SENSORS_EEPROM=yCONFIG_SENSORS_PCF8574=yCONFIG_SENSORS_PCF8591=yCONFIG_HWMON=yCONFIG_HWMON_VID=yCONFIG_SENSORS_ADM1021=yCONFIG_SENSORS_ADM1025=yCONFIG_SENSORS_ADM1031=yCONFIG_SENSORS_ASB100=yCONFIG_SENSORS_DS1621=yCONFIG_SENSORS_FSCHER=yCONFIG_SENSORS_GL518SM=yCONFIG_SENSORS_IT87=yCONFIG_SENSORS_LM75=yCONFIG_SENSORS_LM77=yCONFIG_SENSORS_LM78=yCONFIG_SENSORS_LM80=yCONFIG_SENSORS_LM83=yCONFIG_SENSORS_LM85=yCONFIG_SENSORS_LM90=yCONFIG_SENSORS_MAX1619=yCONFIG_SENSORS_SMSC47M1=yCONFIG_SENSORS_VIA686A=yCONFIG_SENSORS_W83781D=yCONFIG_SENSORS_W83L785TS=yCONFIG_SENSORS_W83627HF=yCONFIG_VIDEO_V4L2=yCONFIG_VIDEO_SELECT=yCONFIG_VGA_CONSOLE=yCONFIG_DUMMY_CONSOLE=yCONFIG_USB_ARCH_HAS_HCD=yCONFIG_USB_ARCH_HAS_OHCI=yCONFIG_USB_ARCH_HAS_EHCI=yCONFIG_EXT2_FS=yCONFIG_EXT2_FS_XATTR=yCONFIG_EXT2_FS_POSIX_ACL=yCONFIG_EXT2_FS_SECURITY=yCONFIG_EXT3_FS=yCONFIG_EXT3_FS_XATTR=yCONFIG_EXT3_FS_POSIX_ACL=yCONFIG_EXT3_FS_SECURITY=yCONFIG_JBD=yCONFIG_FS_MBCACHE=yCONFIG_FS_POSIX_ACL=yCONFIG_ROMFS_FS=yCONFIG_INOTIFY=yCONFIG_DNOTIFY=yCONFIG_AUTOFS_FS=yCONFIG_AUTOFS4_FS=yCONFIG_ISO9660_FS=yCONFIG_JOLIET=yCONFIG_ZISOFS=yCONFIG_ZISOFS_FS=yCONFIG_UDF_FS=yCONFIG_UDF_NLS=yCONFIG_PROC_FS=yCONFIG_PROC_KCORE=yCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_RAMFS=yCONFIG_NFS_FS=yCONFIG_NFS_V3=yCONFIG_NFS_V4=yCONFIG_NFS_DIRECTIO=yCONFIG_NFSD=yCONFIG_NFSD_V3=yCONFIG_NFSD_V4=yCONFIG_NFSD_TCP=yCONFIG_LOCKD=yCONFIG_LOCKD_V4=yCONFIG_EXPORTFS=yCONFIG_NFS_COMMON=yCONFIG_SUNRPC=yCONFIG_SUNRPC_GSS=yCONFIG_RPCSEC_GSS_KRB5=yCONFIG_SMB_FS=yCONFIG_CIFS=yCONFIG_CIFS_XATTR=yCONFIG_CIFS_POSIX=yCONFIG_PARTITION_ADVANCED=yCONFIG_OSF_PARTITION=yCONFIG_MAC_PARTITION=yCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=yCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=yCONFIG_SGI_PARTITION=yCONFIG_SUN_PARTITION=yCONFIG_EFI_PARTITION=yCONFIG_NLS=yCONFIG_NLS_DEFAULT="utf8"CONFIG_NLS_CODEPAGE_437=yCONFIG_NLS_CODEPAGE_737=yCONFIG_NLS_CODEPAGE_775=yCONFIG_NLS_CODEPAGE_850=yCONFIG_NLS_CODEPAGE_852=yCONFIG_NLS_CODEPAGE_855=yCONFIG_NLS_CODEPAGE_857=yCONFIG_NLS_CODEPAGE_860=yCONFIG_NLS_CODEPAGE_861=yCONFIG_NLS_CODEPAGE_862=yCONFIG_NLS_CODEPAGE_863=yCONFIG_NLS_CODEPAGE_864=yCONFIG_NLS_CODEPAGE_865=yCONFIG_NLS_CODEPAGE_866=yCONFIG_NLS_CODEPAGE_869=yCONFIG_NLS_CODEPAGE_936=yCONFIG_NLS_CODEPAGE_950=yCONFIG_NLS_CODEPAGE_932=yCONFIG_NLS_CODEPAGE_949=yCONFIG_NLS_CODEPAGE_874=yCONFIG_NLS_ISO8859_8=yCONFIG_NLS_CODEPAGE_1250=yCONFIG_NLS_CODEPAGE_1251=yCONFIG_NLS_ASCII=yCONFIG_NLS_ISO8859_1=yCONFIG_NLS_ISO8859_2=yCONFIG_NLS_ISO8859_3=yCONFIG_NLS_ISO8859_4=yCONFIG_NLS_ISO8859_5=yCONFIG_NLS_ISO8859_6=yCONFIG_NLS_ISO8859_7=yCONFIG_NLS_ISO8859_9=yCONFIG_NLS_ISO8859_13=yCONFIG_NLS_ISO8859_14=yCONFIG_NLS_ISO8859_15=yCONFIG_NLS_KOI8_R=yCONFIG_NLS_KOI8_U=yCONFIG_NLS_UTF8=yCONFIG_MAGIC_SYSRQ=yCONFIG_DEBUG_KERNEL=yCONFIG_LOG_BUF_SHIFT=17CONFIG_DETECT_SOFTLOCKUP=yCONFIG_DEBUG_BUGVERBOSE=yCONFIG_FORCED_INLINING=yCONFIG_EARLY_PRINTK=yCONFIG_DEBUG_STACKOVERFLOW=yCONFIG_DEBUG_STACK_USAGE=yCONFIG_STACK_BACKTRACE_COLS=2CONFIG_DOUBLEFAULT=yCONFIG_CRYPTO=yCONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_NULL=yCONFIG_CRYPTO_MD4=yCONFIG_CRYPTO_MD5=yCONFIG_CRYPTO_SHA1=yCONFIG_CRYPTO_SHA256=yCONFIG_CRYPTO_SHA512=yCONFIG_CRYPTO_WP512=yCONFIG_CRYPTO_DES=yCONFIG_CRYPTO_BLOWFISH=yCONFIG_CRYPTO_TWOFISH=yCONFIG_CRYPTO_SERPENT=yCONFIG_CRYPTO_AES=yCONFIG_CRYPTO_AES_586=yCONFIG_CRYPTO_CAST5=yCONFIG_CRYPTO_CAST6=yCONFIG_CRYPTO_TEA=yCONFIG_CRYPTO_ARC4=yCONFIG_CRYPTO_KHAZAD=yCONFIG_CRYPTO_DEFLATE=yCONFIG_CRYPTO_MICHAEL_MIC=yCONFIG_CRYPTO_CRC32C=yCONFIG_CRC_CCITT=yCONFIG_CRC32=yCONFIG_LIBCRC32C=yCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=yCONFIG_TEXTSEARCH=yCONFIG_TEXTSEARCH_KMP=mCONFIG_TEXTSEARCH_BM=mCONFIG_TEXTSEARCH_FSM=mCONFIG_GENERIC_HARDIRQS=yCONFIG_GENERIC_IRQ_PROBE=yCONFIG_X86_BIOS_REBOOT=yCONFIG_KTIME_SCALAR=y
And here is strace output trying to execute the police command:
execve("/sbin/tc", ["tc", "filter", "add", "dev", "eth1", "parent", "ffff:", "protocol", "ip", "prio", "50", "u32", "match", "ip", "src", "0.0.0.0/0", "police", "rate", "384kbit", "burst", "10k", "drop", "flowid", ":1"], [/* 22 vars */]) = 0 uname({sys="Linux", node="chico-pptp2.digitalpath.net", ...}) = 0
brk(0) = 0x8066000
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3fstat64(3, {st_mode=S_IFREG|0644, st_size=36167, ...}) = 0old_mmap(NULL, 36167, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fde000
close(3) = 0open("/lib/libresolv.so.2", O_RDONLY) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260glC"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=76640, ...}) = 0old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fdd000 old_mmap(0x436c4000, 76232, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x436c4000
old_mmap(0x436d3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xe000) = 0x436d3000 old_mmap(0x436d5000, 6600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x436d5000
close(3) = 0open("/lib/tls/libm.so.6", O_RDONLY) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0#jC4\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=214800, ...}) = 0old_mmap(0x4369f000, 139424, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4369f000 old_mmap(0x436c0000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x436c0000
close(3) = 0open("/lib/libdl.so.2", O_RDONLY) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300xhC"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=16692, ...}) = 0old_mmap(0x43686000, 12412, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x43686000 old_mmap(0x43688000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1000) = 0x43688000
close(3) = 0open("/lib/tls/libc.so.6", O_RDONLY) = 3read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300\313"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1459332, ...}) = 0old_mmap(0x43568000, 1162188, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x43568000 old_mmap(0x4367e000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x116000) = 0x4367e000 old_mmap(0x43682000, 7116, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x43682000
close(3) = 0old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fdc000
mprotect(0x436c0000, 4096, PROT_READ) = 0
mprotect(0x43688000, 4096, PROT_READ) = 0
mprotect(0x4367e000, 4096, PROT_READ) = 0
mprotect(0x43564000, 4096, PROT_READ) = 0
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7fdc080, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0xb7fde000, 36167) = 0
brk(0) = 0x8066000
brk(0x8087000) = 0x8087000
brk(0) = 0x8087000
open("/proc/net/psched", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fe6000
read(3, "000fa000 000f4240 000f4240 00000"..., 1024) = 36
close(3) = 0
munmap(0xb7fe6000, 4096) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3fstat64(3, {st_mode=S_IFREG|0644, st_size=36167, ...}) = 0 old_mmap(NULL, 36167, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fde000
close(3) = 0open("/lib/tls/i686/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory) stat64("/lib/tls/i686/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory) open("/lib/tls/i686/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/lib/tls/i686", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/lib/tls/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/lib/tls/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/lib/tls/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/lib/tls", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/lib/i686/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/lib/i686/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/lib/i686/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/lib/i686", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/lib/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/lib/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory)
open("/lib/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/lib", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0open("/usr/lib/tls/i686/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/tls/i686/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/usr/lib/tls/i686/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/tls/i686", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/usr/lib/tls/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/tls/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/usr/lib/tls/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/tls", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0open("/usr/lib/i686/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/i686/sse2", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/usr/lib/i686/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/i686", 0xbfa76fc0) = -1 ENOENT (No such file or directory)open("/usr/lib/sse2/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib/sse2", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0open("/usr/lib/f_u32.so", O_RDONLY) = -1 ENOENT (No such file or directory)stat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0munmap(0xb7fde000, 36167) = 0socket(PF_NETLINK, SOCK_RAW, 0) = 3bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0getsockname(3, {sa_family=AF_NETLINK, pid=28175, groups=00000000}, [12]) = 0
time(NULL) = 1153922478
sendto(3, "\24\0\0\0\22\0\1\3\257u\307D\0\0\0\0\0\210\247\277", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\364\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\4\3\1\0\0\0I"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3680 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2z\2\0\0\321"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\222\2\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\247\2\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\304\2\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\340\2\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\367\2\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\21\3\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\0021\3\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2W\3\0\0\321"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\236\3\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\325\3\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\36\4\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\3\5\0\0\321"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2w\n\0\0\321"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3740 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\324\n\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3756 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2\373\n\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3764 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\334\0\0\0\20\0\2\0\257u\307D\17n\0\0\0\0\0\2!\v\0\0\321"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3528 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\257u\307D\17n\0\0\0\0\0\0!\v\0\0\321"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 20 sendmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\224\4\0\0,\0\5\6\260u\307D\0\0\0\0\0\0\0\0l\2\0\0\0\0"..., 1172}], msg_controllen=0, msg_flags=0}, 0) = 1172 recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"$\0\0\0\2\0\0\0\260u\307D\17n\0\0\352\377\377\377\224\4"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 36
dup(2) = 4fcntl64(4, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)fstat64(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fe6000_llseek(4, 0, 0xbfa75198, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(4, "RTNETLINK answers: Invalid argum"..., 36RTNETLINK answers: Invalid argument
) = 36
close(4) = 0 munmap(0xb7fe6000, 4096) = 0 exit_group(2) = ?
I'm not sure why it's trying to load f_u32.so. It does the same on the CentOS machine (and the file also does not exist anywhere that I can tell), but the tc command suceeds.
Thanks for any suggestions, pulling my hair out on this one.
Ray
Quoted 21 lines · Ray Van Dolson
Haven't gotten a response for this on the LARTC list... hoping someone here may have an answer for me.
I'm trying to use the ingress policer on a custom kernel as follows, but having some problems:
# tc qdisc add dev eth1 handle ffff: ingress # tc filter add dev eth1 parent ffff: protocol ip prio 50 u32 match ip src \ 0.0.0.0/0 police rate 384kbit burst 10k drop flowid :1 RTNETLINK answers: Invalid argumentThis is on a Fedora Core 2 based system, with a custom built 2.6.17.7 kernel.
The above commands work perfectly on a CentOS 4.x based system with a custom built 2.6.16 kernel. The hardware in both machines are identical and I used the 2.6.16 config from the CentOS machine to build the 2.6.17.7 kernel (did a make oldconfig). So the netfilter moudules, etc should be identical.
The network driver on both is the bcm5700 from HP.
Quoted 8 lines
tc with any egress filtering options works perfectly on the 2.6.17.7 box.
I can also run the ingress policer commands on identical hardware with Fedora Core 1 (using stock kernel). So I don't believe this is a result of the version of the iproute package.
Does anyone know the exact requirements of the ingress policer as far as the kernel is concerned? Below is my kernel config:
Well, figured out the problem. The issue was not the kernel, but that the tools were built against RedHat/Fedora's glibc-kernheaders. Apparently they must reference a symbol of some sort that doesn't exist in the stock kernel (at least in Fedora Core 2).
I modified the iproute RPM .spec file to build against my 2.6.17 kernel headers instead of glibc-kernheaders and everything is working fine.
Grr!
As an aside, would have loved to stick with the stock kernels (wouldn't have encountered this issue in that case), but wanted to make use of built-in MPPE support in the later kernel releases. Obviously this will never be backported into FC2's now-maintained-by-fedora-legacy kernel. :)