cregit-Linux how code gets into the kernel

Release 4.15 net/8021q/vlan_mvrp.c

Directory: net/8021q
/*
 *      IEEE 802.1Q Multiple VLAN Registration Protocol (MVRP)
 *
 *      Copyright (c) 2012 Massachusetts Institute of Technology
 *
 *      Adapted from code in net/8021q/vlan_gvrp.c
 *      Copyright (c) 2008 Patrick McHardy <kaber@trash.net>
 *
 *      This program is free software; you can redistribute it and/or
 *      modify it under the terms of the GNU General Public License
 *      version 2 as published by the Free Software Foundation.
 */
#include <linux/types.h>
#include <linux/if_ether.h>
#include <linux/if_vlan.h>
#include <net/mrp.h>
#include "vlan.h"


#define MRP_MVRP_ADDRESS	{ 0x01, 0x80, 0xc2, 0x00, 0x00, 0x21 }


enum mvrp_attributes {
	
MVRP_ATTR_INVALID,
	
MVRP_ATTR_VID,
	
__MVRP_ATTR_MAX
};

#define MVRP_ATTR_MAX	(__MVRP_ATTR_MAX - 1)


static struct mrp_application vlan_mrp_app __read_mostly = {
	.type		= MRP_APPLICATION_MVRP,
	.maxattr	= MVRP_ATTR_MAX,
	.pkttype.type	= htons(ETH_P_MVRP),
	.group_address	= MRP_MVRP_ADDRESS,
	.version	= 0,
};


int vlan_mvrp_request_join(const struct net_device *dev) { const struct vlan_dev_priv *vlan = vlan_dev_priv(dev); __be16 vlan_id = htons(vlan->vlan_id); if (vlan->vlan_proto != htons(ETH_P_8021Q)) return 0; return mrp_request_join(vlan->real_dev, &vlan_mrp_app, &vlan_id, sizeof(vlan_id), MVRP_ATTR_VID); }

Contributors

PersonTokensPropCommitsCommitProp
David Ward5379.10%150.00%
Patrick McHardy1420.90%150.00%
Total67100.00%2100.00%


void vlan_mvrp_request_leave(const struct net_device *dev) { const struct vlan_dev_priv *vlan = vlan_dev_priv(dev); __be16 vlan_id = htons(vlan->vlan_id); if (vlan->vlan_proto != htons(ETH_P_8021Q)) return; mrp_request_leave(vlan->real_dev, &vlan_mrp_app, &vlan_id, sizeof(vlan_id), MVRP_ATTR_VID); }

Contributors

PersonTokensPropCommitsCommitProp
David Ward5281.25%150.00%
Patrick McHardy1218.75%150.00%
Total64100.00%2100.00%


int vlan_mvrp_init_applicant(struct net_device *dev) { return mrp_init_applicant(dev, &vlan_mrp_app); }

Contributors

PersonTokensPropCommitsCommitProp
David Ward19100.00%1100.00%
Total19100.00%1100.00%


void vlan_mvrp_uninit_applicant(struct net_device *dev) { mrp_uninit_applicant(dev, &vlan_mrp_app); }

Contributors

PersonTokensPropCommitsCommitProp
David Ward18100.00%1100.00%
Total18100.00%1100.00%


int __init vlan_mvrp_init(void) { return mrp_register_application(&vlan_mrp_app); }

Contributors

PersonTokensPropCommitsCommitProp
David Ward15100.00%1100.00%
Total15100.00%1100.00%


void vlan_mvrp_uninit(void) { mrp_unregister_application(&vlan_mrp_app); }

Contributors

PersonTokensPropCommitsCommitProp
David Ward13100.00%1100.00%
Total13100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
David Ward24290.30%150.00%
Patrick McHardy269.70%150.00%
Total268100.00%2100.00%
Directory: net/8021q
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.