MCPcopy Create free account
hub / github.com/F-Stack/f-stack / tap_allmulti_enable

Function tap_allmulti_enable

dpdk/drivers/net/tap/rte_eth_tap.c:1315–1341  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1313}
1314
1315static int
1316tap_allmulti_enable(struct rte_eth_dev *dev)
1317{
1318 struct pmd_internals *pmd = dev->data->dev_private;
1319 struct ifreq ifr = { .ifr_flags = IFF_ALLMULTI };
1320 int ret;
1321
1322 ret = tap_ioctl(pmd, SIOCSIFFLAGS, &ifr, 1, LOCAL_AND_REMOTE);
1323 if (ret != 0)
1324 return ret;
1325
1326 if (pmd->remote_if_index && !pmd->flow_isolate) {
1327 dev->data->all_multicast = 1;
1328 ret = tap_flow_implicit_create(pmd, TAP_REMOTE_ALLMULTI);
1329 if (ret != 0) {
1330 /* Rollback allmulti flag */
1331 tap_ioctl(pmd, SIOCSIFFLAGS, &ifr, 0, LOCAL_AND_REMOTE);
1332 /*
1333 * rte_eth_dev_allmulticast_enable() rollback
1334 * dev->data->all_multicast in the case of failure.
1335 */
1336 return ret;
1337 }
1338 }
1339
1340 return 0;
1341}
1342
1343static int
1344tap_allmulti_disable(struct rte_eth_dev *dev)

Callers

nothing calls this directly

Calls 2

tap_ioctlFunction · 0.85
tap_flow_implicit_createFunction · 0.85

Tested by

no test coverage detected