{"push_id":1346704220,"size":8,"distinct_size":8,"ref":"refs/heads/combined_queue","head":"d29b27bfbb2e2bc13f4b34cfa7f5a595c1807f37","before":"d4769ba52b043a75727797897795e9e044b46f18","commits":[{"sha":"e4935bef80424115d04c1ccf43f00439497bfdc9","author":{"name":"Ido Schimmel","email":"47f98fbd7c1ff0617d70d2ed262591cfebfa5379@mellanox.com"},"message":"switchdev: Execute bridge ndos only for bridge ports\n\nWe recently got the following warning after setting up a vlan device on\ntop of an offloaded bridge and executing 'bridge link':\n\nWARNING: CPU: 0 PID: 18566 at drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c:81 mlxsw_sp_port_orig_get.part.9+0x55/0x70 [mlxsw_spectrum]\n[...]\n CPU: 0 PID: 18566 Comm: bridge Not tainted 4.8.0-rc7 #1\n Hardware name: Mellanox Technologies Ltd. Mellanox switch/Mellanox switch, BIOS 4.6.5 05/21/2015\n  0000000000000286 00000000e64ab94f ffff880406e6f8f0 ffffffff8135eaa3\n  0000000000000000 0000000000000000 ffff880406e6f930 ffffffff8108c43b\n  0000005106e6f988 ffff8803df398840 ffff880403c60108 ffff880406e6f990\n Call Trace:\n  [<ffffffff8135eaa3>] dump_stack+0x63/0x90\n  [<ffffffff8108c43b>] __warn+0xcb/0xf0\n  [<ffffffff8108c56d>] warn_slowpath_null+0x1d/0x20\n  [<ffffffffa01420d5>] mlxsw_sp_port_orig_get.part.9+0x55/0x70 [mlxsw_spectrum]\n  [<ffffffffa0142195>] mlxsw_sp_port_attr_get+0xa5/0xb0 [mlxsw_spectrum]\n  [<ffffffff816f151f>] switchdev_port_attr_get+0x4f/0x140\n  [<ffffffff816f15d0>] switchdev_port_attr_get+0x100/0x140\n  [<ffffffff816f15d0>] switchdev_port_attr_get+0x100/0x140\n  [<ffffffff816f1d6b>] switchdev_port_bridge_getlink+0x5b/0xc0\n  [<ffffffff816f2680>] ? switchdev_port_fdb_dump+0x90/0x90\n  [<ffffffff815f5427>] rtnl_bridge_getlink+0xe7/0x190\n  [<ffffffff8161a1b2>] netlink_dump+0x122/0x290\n  [<ffffffff8161b0df>] __netlink_dump_start+0x15f/0x190\n  [<ffffffff815f5340>] ? rtnl_bridge_dellink+0x230/0x230\n  [<ffffffff815fab46>] rtnetlink_rcv_msg+0x1a6/0x220\n  [<ffffffff81208118>] ? __kmalloc_node_track_caller+0x208/0x2c0\n  [<ffffffff815f5340>] ? rtnl_bridge_dellink+0x230/0x230\n  [<ffffffff815fa9a0>] ? rtnl_newlink+0x890/0x890\n  [<ffffffff8161cf54>] netlink_rcv_skb+0xa4/0xc0\n  [<ffffffff815f56f8>] rtnetlink_rcv+0x28/0x30\n  [<ffffffff8161c92c>] netlink_unicast+0x18c/0x240\n  [<ffffffff8161ccdb>] netlink_sendmsg+0x2fb/0x3a0\n  [<ffffffff815c5a48>] sock_sendmsg+0x38/0x50\n  [<ffffffff815c6031>] SYSC_sendto+0x101/0x190\n  [<ffffffff815c7111>] ? __sys_recvmsg+0x51/0x90\n  [<ffffffff815c6b6e>] SyS_sendto+0xe/0x10\n  [<ffffffff817017f2>] entry_SYSCALL_64_fastpath+0x1a/0xa4\n\nThe problem is that the 8021q module propagates the call to\nndo_bridge_getlink() via switchdev ops, but the switch driver doesn't\nrecognize the netdev, as it's not offloaded.\n\nWhile we can ignore calls being made to non-bridge ports inside the\ndriver, a better fix would be to push this check up to the switchdev\nlayer.\n\nNote that these ndos can be called for non-bridged netdev, but this only\nhappens in certain PF drivers which don't call the corresponding\nswitchdev functions anyway.\n\nFixes: 99f44bb3527b (\"mlxsw: spectrum: Enable L3 interfaces on top of bridge devices\")\nSigned-off-by: Ido Schimmel <idosch@mellanox.com>\nReported-by: Tamir Winetroub <tamirw@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/e4935bef80424115d04c1ccf43f00439497bfdc9"},{"sha":"26345e3bdb523082c0d29e8b774bf71b01dd5357","author":{"name":"Jiri Pirko","email":"a7e702c6c67814648a4f7569508b76ff202ca280@mellanox.com"},"message":"mlxsw: spectrum_router: Use correct tree index for binding\n\nBy a mistake, there is tree index 0 passed to RALTB. Should be\nMLXSW_SP_LPM_TREE_MIN.\n\nFixes: b45f64d16d45 (\"mlxsw: spectrum_router: Use FIB notifications instead of switchdev calls\")\nReported-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/26345e3bdb523082c0d29e8b774bf71b01dd5357"},{"sha":"29595117df429e8a910bdbabf0a23edb5bb2c73a","author":{"name":"Yotam Gigi","email":"2e89ae30e3db5ccedb0500ffbd96038700416bec@gmail.com"},"message":"Introduce ife encapsulation module\n\nThis module is responsible for the ife encapsulation protocol\nencode/decode logics. That module can:\n - ife_encode: encode skb and reserve space for the ife meta header\n - ife_decode: decode skb and extract the meta header size\n - ife_tlv_meta_encode - encodes one tlv entry into the reserved ife\n   header space.\n - ife_tlv_meta_decode - decodes one tlv entry from the packet\n - ife_tlv_meta_next - advance to the next tlv\n\nSigned-off-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/29595117df429e8a910bdbabf0a23edb5bb2c73a"},{"sha":"e12a31241399328600153beb9475a7c732581fb4","author":{"name":"Yotam Gigi","email":"2e89ae30e3db5ccedb0500ffbd96038700416bec@gmail.com"},"message":"act_ife: Change to use ife module\n\nUse the encode/decode functionality from the ife module instead of using\nimplementation inside the act_ife.\n\nSigned-off-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/e12a31241399328600153beb9475a7c732581fb4"},{"sha":"c3caad89153d2085ca4f3c662db313d0433fe40d","author":{"name":"Yotam Gigi","email":"2e89ae30e3db5ccedb0500ffbd96038700416bec@gmail.com"},"message":"ife: Introduce new metadata tlv types\n\n - IFE_META_IFINDEX: Allow to pass ifindex value as part of the ife\n   metadata\n - IFE_META_ORIG_SIZE: Allow to pass the original packet size as part of\n   the ife metadata. Can be used in case that the packet is truncated\n - IFE_META_SIZE: Allow to pass the size of the encapsulated packet as\n   part of the ife metadata\n\nSigned-off-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/c3caad89153d2085ca4f3c662db313d0433fe40d"},{"sha":"9f9aac02452708764d4dded44d5ddbcec9af87e1","author":{"name":"Yotam Gigi","email":"2e89ae30e3db5ccedb0500ffbd96038700416bec@gmail.com"},"message":"Introduce sample tc action\n\nThis action allow the user to sample traffic matched by tc classifier.\nThe sampling consists of choosing packets randomly, truncating them,\nadding some informative metadata regarding the interface and the original\npacket size and mark them with specific mark, to allow further tc rules to\nmatch and process. The marked sample packets are then injected into the\ndevice ingress qdisc using netif_receive_skb.\n\nThe packets metadata is packed using the ife encapsulation protocol, and\nthe outer packet's ethernet dest, source and eth_type, along with the\nrate, mark and the optional truncation size can be configured from\nuserspace.\n\nExample:\nTo sample ingress traffic from interface eth1, and redirect the sampled\nthe sampled packets to interface dummy0, one may use the commands:\n\ntc qdisc add dev eth1 handle ffff: ingress\n\ntc filter add dev eth1 parent ffff: \\\n\t   matchall action sample rate 12 mark 17\n\ntc filter add parent ffff: dev eth1 protocol all \\\n\t   u32 match mark 172 0xff\n\t   action mirred egress redirect dev dummy0\n\nWhere the first command adds an ingress qdisc and the second starts\nsampling every 12'th packet on dev eth0 and marks the sampled packets with\n17. The command third catches the sampled packets, which are marked with\n17, and redirects them to dev dummy0.\n\nSigned-off-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/9f9aac02452708764d4dded44d5ddbcec9af87e1"},{"sha":"aac9281adf192cf5e67ea28301c92e758da03294","author":{"name":"Yotam Gigi","email":"2e89ae30e3db5ccedb0500ffbd96038700416bec@gmail.com"},"message":"mlxsw: reg: add the Monitoring Packet Sampling Configuration Register\n\nThe MPSC register allows to configure ingress packet sampling on specific\nport of the mlxsw device. The sampled packets are then trapped via\nPKT_SAMPLE trap.\n\nSigned-off-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/aac9281adf192cf5e67ea28301c92e758da03294"},{"sha":"d29b27bfbb2e2bc13f4b34cfa7f5a595c1807f37","author":{"name":"Yotam Gigi","email":"2e89ae30e3db5ccedb0500ffbd96038700416bec@gmail.com"},"message":"mlxsw: packet sample: Add packet sample offloading support\n\nUsing the MPSC regiter, add the functions that configure port packets\nsampling in hardware and the necessary datatypes in the mlxsw_sp_port\nstruct. In addition, add the necessary trap for sampled packets and\nintegrate with matchall offloading to allow offloading of the sample tc\naction.\n\nThe current offload support is for the tc command:\n\ntc filter add dev <DEV> parent ffff:   \\\n\t  matchall   \\\n\t  action sample rate <RATE> mark <MARK> [trunc <SIZE>]   \\\n\t  \t\t[src <SADDR>] [dst <DADDR>] [type <TYPE>]\n\nWhere only ingress qdiscs are supported, and only a combination of\nmatchall classifier and sample action will lead to activating hardware\npacket sampling.\n\nSigned-off-by: Yotam Gigi <yotamg@mellanox.com>\nSigned-off-by: Jiri Pirko <jiri@mellanox.com>","distinct":true,"url":"https://api.github.com/repos/jpirko/linux_mlxsw/commits/d29b27bfbb2e2bc13f4b34cfa7f5a595c1807f37"}]}
{"actor":{"display_login":"jpirko"}}