source: trunk/target/linux/ar71xx/patches-2.6.34/122-dsa-add-qinq-tagging-format.patch @ 20141

Last change on this file since 20141 was 20141, checked in by acoul, 7 years ago

ar71xx: add 2.6.34 preliminary support (patches)

File size: 2.3 KB
  • include/linux/if_ether.h

    a b  
    8181#define ETH_P_1588      0x88F7          /* IEEE 1588 Timesync */ 
    8282#define ETH_P_FCOE      0x8906          /* Fibre Channel over Ethernet  */ 
    8383#define ETH_P_FIP       0x8914          /* FCoE Initialization Protocol */ 
     84#define ETH_P_QINQ      0x9100          /* QinQ VLAN Stacking Protocol */ 
    8485#define ETH_P_EDSA      0xDADA          /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */ 
    8586 
    8687/* 
  • net/dsa/dsa_priv.h

    a b netdev_tx_t dsa_xmit(struct sk_buff *skb 
    174174/* tag_edsa.c */ 
    175175netdev_tx_t edsa_xmit(struct sk_buff *skb, struct net_device *dev); 
    176176 
     177/* tag_qinq.c */ 
     178netdev_tx_t qinq_xmit(struct sk_buff *skb, struct net_device *dev); 
     179 
    177180/* tag_trailer.c */ 
    178181netdev_tx_t trailer_xmit(struct sk_buff *skb, struct net_device *dev); 
    179182 
  • net/dsa/Kconfig

    a b config NET_DSA_TAG_TRAILER 
    2323        bool 
    2424        default n 
    2525 
     26config NET_DSA_TAG_QINQ 
     27        bool 
     28        default y 
     29 
    2630 
    2731# switch drivers 
    2832config NET_DSA_MV88E6XXX 
  • net/dsa/Makefile

    a b  
    11# tagging formats 
    22obj-$(CONFIG_NET_DSA_TAG_DSA) += tag_dsa.o 
    33obj-$(CONFIG_NET_DSA_TAG_EDSA) += tag_edsa.o 
     4obj-$(CONFIG_NET_DSA_TAG_QINQ) += tag_qinq.o 
    45obj-$(CONFIG_NET_DSA_TAG_TRAILER) += tag_trailer.o 
    56 
    67# switch drivers 
  • net/dsa/slave.c

    a b static const struct net_device_ops edsa_ 
    321321        .ndo_do_ioctl           = dsa_slave_ioctl, 
    322322}; 
    323323#endif 
     324#ifdef CONFIG_NET_DSA_TAG_QINQ 
     325static const struct net_device_ops qinq_netdev_ops = { 
     326        .ndo_init               = dsa_slave_init, 
     327        .ndo_open               = dsa_slave_open, 
     328        .ndo_stop               = dsa_slave_close, 
     329        .ndo_start_xmit         = qinq_xmit, 
     330        .ndo_change_rx_flags    = dsa_slave_change_rx_flags, 
     331        .ndo_set_rx_mode        = dsa_slave_set_rx_mode, 
     332        .ndo_set_multicast_list = dsa_slave_set_rx_mode, 
     333        .ndo_set_mac_address    = dsa_slave_set_mac_address, 
     334        .ndo_do_ioctl           = dsa_slave_ioctl, 
     335}; 
     336#endif 
    324337#ifdef CONFIG_NET_DSA_TAG_TRAILER 
    325338static const struct net_device_ops trailer_netdev_ops = { 
    326339        .ndo_init               = dsa_slave_init, 
    dsa_slave_create(struct dsa_switch *ds,  
    366379                slave_dev->netdev_ops = &edsa_netdev_ops; 
    367380                break; 
    368381#endif 
     382#ifdef CONFIG_NET_DSA_TAG_QINQ 
     383        case htons(ETH_P_QINQ): 
     384                slave_dev->netdev_ops = &qinq_netdev_ops; 
     385                break; 
     386#endif 
    369387#ifdef CONFIG_NET_DSA_TAG_TRAILER 
    370388        case htons(ETH_P_TRAILER): 
    371389                slave_dev->netdev_ops = &trailer_netdev_ops; 
Note: See TracBrowser for help on using the repository browser.