Skip to content

QoS map not getting updated in the kernel #423

Description

@shergillg

I am using rtnl_link_vlan_set_egress_map() to update the qos map for an existing VLAN link/interface in the kernel. The code shown below executes without any failures but qos mapping on the interface in the kernel remain the same.

        /* Let's find the link we are interested in. */                                   
        link = rtnl_link_get_by_name (link_cache, ifname);                                
        if (link == NULL) {                                                               
            printf ("Link not found in cache.\n");                                        
            return -1;                                                                    
        }
                                                                  
        /* Alloc a new vlan link and make the change to it. */                        
        change = rtnl_link_vlan_alloc();                                              
                                                                                      
        rval = rtnl_link_vlan_set_egress_map (change, qos_from, qos_to);              
        if (rval < 0) {                                                               
            printf ("Error: rtnl_vlan_set_egress_map() call failed. rval=%d\n", rval);
            return -1;                                                                
        }                                                                             
                                                                                      
        /* Now apply the change to the actual link. */                                
        rval = rtnl_link_change (sk, link, change, 0);                                
        if (rval < 0) {                                                               
            printf ("Error: rtnl_link_change() call failed. rval=%d\n", rval);        
            return -1;                                                                
        }

To confirm that "change" is getting applied to "link", I also tried calling rtnl_link_vlan_get_egress_map() after the call to rtnl_link_change(). That confirmed that qos map "change" is making it on to the "link". But the update is not making it to the kernel.

What am I missing or doing wrong here ? Do rtnl_link_vlan_set_*() APIs not work on existing VLAN links ?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions