rtnetlink.c (d819524d3144f4703f45f473fdc85ad7579ae94c) | rtnetlink.c (a4abfa627c3865c37e036bccb681619a50d3d93c) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * INET An implementation of the TCP/IP protocol suite for the LINUX 4 * operating system. INET is implemented using the BSD Socket 5 * interface as the means of communication with the user level. 6 * 7 * Routing netlink socket interface: protocol independent part. 8 * --- 852 unchanged lines hidden (view full) --- 861 if ((operstate == IF_OPER_DORMANT || 862 operstate == IF_OPER_TESTING || 863 operstate == IF_OPER_UNKNOWN) && 864 !netif_dormant(dev) && !netif_testing(dev)) 865 operstate = IF_OPER_UP; 866 break; 867 868 case IF_OPER_TESTING: | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * INET An implementation of the TCP/IP protocol suite for the LINUX 4 * operating system. INET is implemented using the BSD Socket 5 * interface as the means of communication with the user level. 6 * 7 * Routing netlink socket interface: protocol independent part. 8 * --- 852 unchanged lines hidden (view full) --- 861 if ((operstate == IF_OPER_DORMANT || 862 operstate == IF_OPER_TESTING || 863 operstate == IF_OPER_UNKNOWN) && 864 !netif_dormant(dev) && !netif_testing(dev)) 865 operstate = IF_OPER_UP; 866 break; 867 868 case IF_OPER_TESTING: |
869 if (operstate == IF_OPER_UP || 870 operstate == IF_OPER_UNKNOWN) | 869 if (netif_oper_up(dev)) |
871 operstate = IF_OPER_TESTING; 872 break; 873 874 case IF_OPER_DORMANT: | 870 operstate = IF_OPER_TESTING; 871 break; 872 873 case IF_OPER_DORMANT: |
875 if (operstate == IF_OPER_UP || 876 operstate == IF_OPER_UNKNOWN) | 874 if (netif_oper_up(dev)) |
877 operstate = IF_OPER_DORMANT; 878 break; 879 } 880 881 if (dev->operstate != operstate) { 882 write_lock(&dev_base_lock); 883 dev->operstate = operstate; 884 write_unlock(&dev_base_lock); --- 169 unchanged lines hidden (view full) --- 1054 + nla_total_size(MAX_ADDR_LEN) /* IFLA_BROADCAST */ 1055 + nla_total_size(4) /* IFLA_TXQLEN */ 1056 + nla_total_size(4) /* IFLA_WEIGHT */ 1057 + nla_total_size(4) /* IFLA_MTU */ 1058 + nla_total_size(4) /* IFLA_LINK */ 1059 + nla_total_size(4) /* IFLA_MASTER */ 1060 + nla_total_size(1) /* IFLA_CARRIER */ 1061 + nla_total_size(4) /* IFLA_PROMISCUITY */ | 875 operstate = IF_OPER_DORMANT; 876 break; 877 } 878 879 if (dev->operstate != operstate) { 880 write_lock(&dev_base_lock); 881 dev->operstate = operstate; 882 write_unlock(&dev_base_lock); --- 169 unchanged lines hidden (view full) --- 1052 + nla_total_size(MAX_ADDR_LEN) /* IFLA_BROADCAST */ 1053 + nla_total_size(4) /* IFLA_TXQLEN */ 1054 + nla_total_size(4) /* IFLA_WEIGHT */ 1055 + nla_total_size(4) /* IFLA_MTU */ 1056 + nla_total_size(4) /* IFLA_LINK */ 1057 + nla_total_size(4) /* IFLA_MASTER */ 1058 + nla_total_size(1) /* IFLA_CARRIER */ 1059 + nla_total_size(4) /* IFLA_PROMISCUITY */ |
1060 + nla_total_size(4) /* IFLA_ALLMULTI */ |
|
1062 + nla_total_size(4) /* IFLA_NUM_TX_QUEUES */ 1063 + nla_total_size(4) /* IFLA_NUM_RX_QUEUES */ 1064 + nla_total_size(4) /* IFLA_GSO_MAX_SEGS */ 1065 + nla_total_size(4) /* IFLA_GSO_MAX_SIZE */ 1066 + nla_total_size(4) /* IFLA_GRO_MAX_SIZE */ 1067 + nla_total_size(4) /* IFLA_TSO_MAX_SIZE */ 1068 + nla_total_size(4) /* IFLA_TSO_MAX_SEGS */ 1069 + nla_total_size(1) /* IFLA_OPERSTATE */ --- 692 unchanged lines hidden (view full) --- 1762 nla_put_u8(skb, IFLA_OPERSTATE, 1763 netif_running(dev) ? dev->operstate : IF_OPER_DOWN) || 1764 nla_put_u8(skb, IFLA_LINKMODE, dev->link_mode) || 1765 nla_put_u32(skb, IFLA_MTU, dev->mtu) || 1766 nla_put_u32(skb, IFLA_MIN_MTU, dev->min_mtu) || 1767 nla_put_u32(skb, IFLA_MAX_MTU, dev->max_mtu) || 1768 nla_put_u32(skb, IFLA_GROUP, dev->group) || 1769 nla_put_u32(skb, IFLA_PROMISCUITY, dev->promiscuity) || | 1061 + nla_total_size(4) /* IFLA_NUM_TX_QUEUES */ 1062 + nla_total_size(4) /* IFLA_NUM_RX_QUEUES */ 1063 + nla_total_size(4) /* IFLA_GSO_MAX_SEGS */ 1064 + nla_total_size(4) /* IFLA_GSO_MAX_SIZE */ 1065 + nla_total_size(4) /* IFLA_GRO_MAX_SIZE */ 1066 + nla_total_size(4) /* IFLA_TSO_MAX_SIZE */ 1067 + nla_total_size(4) /* IFLA_TSO_MAX_SEGS */ 1068 + nla_total_size(1) /* IFLA_OPERSTATE */ --- 692 unchanged lines hidden (view full) --- 1761 nla_put_u8(skb, IFLA_OPERSTATE, 1762 netif_running(dev) ? dev->operstate : IF_OPER_DOWN) || 1763 nla_put_u8(skb, IFLA_LINKMODE, dev->link_mode) || 1764 nla_put_u32(skb, IFLA_MTU, dev->mtu) || 1765 nla_put_u32(skb, IFLA_MIN_MTU, dev->min_mtu) || 1766 nla_put_u32(skb, IFLA_MAX_MTU, dev->max_mtu) || 1767 nla_put_u32(skb, IFLA_GROUP, dev->group) || 1768 nla_put_u32(skb, IFLA_PROMISCUITY, dev->promiscuity) || |
1769 nla_put_u32(skb, IFLA_ALLMULTI, dev->allmulti) || |
|
1770 nla_put_u32(skb, IFLA_NUM_TX_QUEUES, dev->num_tx_queues) || 1771 nla_put_u32(skb, IFLA_GSO_MAX_SEGS, dev->gso_max_segs) || 1772 nla_put_u32(skb, IFLA_GSO_MAX_SIZE, dev->gso_max_size) || 1773 nla_put_u32(skb, IFLA_GRO_MAX_SIZE, dev->gro_max_size) || 1774 nla_put_u32(skb, IFLA_TSO_MAX_SIZE, dev->tso_max_size) || 1775 nla_put_u32(skb, IFLA_TSO_MAX_SEGS, dev->tso_max_segs) || 1776#ifdef CONFIG_RPS 1777 nla_put_u32(skb, IFLA_NUM_RX_QUEUES, dev->num_rx_queues) || --- 145 unchanged lines hidden (view full) --- 1923 .len = ALTIFNAMSIZ - 1 }, 1924 [IFLA_PERM_ADDRESS] = { .type = NLA_REJECT }, 1925 [IFLA_PROTO_DOWN_REASON] = { .type = NLA_NESTED }, 1926 [IFLA_NEW_IFINDEX] = NLA_POLICY_MIN(NLA_S32, 1), 1927 [IFLA_PARENT_DEV_NAME] = { .type = NLA_NUL_STRING }, 1928 [IFLA_GRO_MAX_SIZE] = { .type = NLA_U32 }, 1929 [IFLA_TSO_MAX_SIZE] = { .type = NLA_REJECT }, 1930 [IFLA_TSO_MAX_SEGS] = { .type = NLA_REJECT }, | 1770 nla_put_u32(skb, IFLA_NUM_TX_QUEUES, dev->num_tx_queues) || 1771 nla_put_u32(skb, IFLA_GSO_MAX_SEGS, dev->gso_max_segs) || 1772 nla_put_u32(skb, IFLA_GSO_MAX_SIZE, dev->gso_max_size) || 1773 nla_put_u32(skb, IFLA_GRO_MAX_SIZE, dev->gro_max_size) || 1774 nla_put_u32(skb, IFLA_TSO_MAX_SIZE, dev->tso_max_size) || 1775 nla_put_u32(skb, IFLA_TSO_MAX_SEGS, dev->tso_max_segs) || 1776#ifdef CONFIG_RPS 1777 nla_put_u32(skb, IFLA_NUM_RX_QUEUES, dev->num_rx_queues) || --- 145 unchanged lines hidden (view full) --- 1923 .len = ALTIFNAMSIZ - 1 }, 1924 [IFLA_PERM_ADDRESS] = { .type = NLA_REJECT }, 1925 [IFLA_PROTO_DOWN_REASON] = { .type = NLA_NESTED }, 1926 [IFLA_NEW_IFINDEX] = NLA_POLICY_MIN(NLA_S32, 1), 1927 [IFLA_PARENT_DEV_NAME] = { .type = NLA_NUL_STRING }, 1928 [IFLA_GRO_MAX_SIZE] = { .type = NLA_U32 }, 1929 [IFLA_TSO_MAX_SIZE] = { .type = NLA_REJECT }, 1930 [IFLA_TSO_MAX_SEGS] = { .type = NLA_REJECT }, |
1931 [IFLA_ALLMULTI] = { .type = NLA_REJECT }, |
|
1931}; 1932 1933static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = { 1934 [IFLA_INFO_KIND] = { .type = NLA_STRING }, 1935 [IFLA_INFO_DATA] = { .type = NLA_NESTED }, 1936 [IFLA_INFO_SLAVE_KIND] = { .type = NLA_STRING }, 1937 [IFLA_INFO_SLAVE_DATA] = { .type = NLA_NESTED }, 1938}; --- 832 unchanged lines hidden (view full) --- 2771 status |= DO_SETLINK_NOTIFY; 2772 } 2773 2774 if (tb[IFLA_BROADCAST]) { 2775 nla_memcpy(dev->broadcast, tb[IFLA_BROADCAST], dev->addr_len); 2776 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); 2777 } 2778 | 1932}; 1933 1934static const struct nla_policy ifla_info_policy[IFLA_INFO_MAX+1] = { 1935 [IFLA_INFO_KIND] = { .type = NLA_STRING }, 1936 [IFLA_INFO_DATA] = { .type = NLA_NESTED }, 1937 [IFLA_INFO_SLAVE_KIND] = { .type = NLA_STRING }, 1938 [IFLA_INFO_SLAVE_DATA] = { .type = NLA_NESTED }, 1939}; --- 832 unchanged lines hidden (view full) --- 2772 status |= DO_SETLINK_NOTIFY; 2773 } 2774 2775 if (tb[IFLA_BROADCAST]) { 2776 nla_memcpy(dev->broadcast, tb[IFLA_BROADCAST], dev->addr_len); 2777 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); 2778 } 2779 |
2779 if (ifm->ifi_flags || ifm->ifi_change) { 2780 err = dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm), 2781 extack); 2782 if (err < 0) 2783 goto errout; 2784 } 2785 | |
2786 if (tb[IFLA_MASTER]) { 2787 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); 2788 if (err) 2789 goto errout; 2790 status |= DO_SETLINK_MODIFIED; 2791 } 2792 | 2780 if (tb[IFLA_MASTER]) { 2781 err = do_set_master(dev, nla_get_u32(tb[IFLA_MASTER]), extack); 2782 if (err) 2783 goto errout; 2784 status |= DO_SETLINK_MODIFIED; 2785 } 2786 |
2787 if (ifm->ifi_flags || ifm->ifi_change) { 2788 err = dev_change_flags(dev, rtnl_dev_combine_flags(dev, ifm), 2789 extack); 2790 if (err < 0) 2791 goto errout; 2792 } 2793 |
|
2793 if (tb[IFLA_CARRIER]) { 2794 err = dev_change_carrier(dev, nla_get_u8(tb[IFLA_CARRIER])); 2795 if (err) 2796 goto errout; 2797 status |= DO_SETLINK_MODIFIED; 2798 } 2799 2800 if (tb[IFLA_TXQLEN]) { --- 3416 unchanged lines hidden --- | 2794 if (tb[IFLA_CARRIER]) { 2795 err = dev_change_carrier(dev, nla_get_u8(tb[IFLA_CARRIER])); 2796 if (err) 2797 goto errout; 2798 status |= DO_SETLINK_MODIFIED; 2799 } 2800 2801 if (tb[IFLA_TXQLEN]) { --- 3416 unchanged lines hidden --- |