Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
net
8021q
vlan_gvrp.c
Go to the documentation of this file.
1
/*
2
* IEEE 802.1Q GARP VLAN Registration Protocol (GVRP)
3
*
4
* Copyright (c) 2008 Patrick McHardy <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* version 2 as published by the Free Software Foundation.
9
*/
10
#include <linux/types.h>
11
#include <linux/if_vlan.h>
12
#include <
net/garp.h
>
13
#include "
vlan.h
"
14
15
#define GARP_GVRP_ADDRESS { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x21 }
16
17
enum
gvrp_attributes
{
18
GVRP_ATTR_INVALID
,
19
GVRP_ATTR_VID
,
20
__GVRP_ATTR_MAX
21
};
22
#define GVRP_ATTR_MAX (__GVRP_ATTR_MAX - 1)
23
24
static
struct
garp_application
vlan_gvrp_app
__read_mostly
= {
25
.proto.group_address =
GARP_GVRP_ADDRESS
,
26
.maxattr =
GVRP_ATTR_MAX
,
27
.type =
GARP_APPLICATION_GVRP
,
28
};
29
30
int
vlan_gvrp_request_join
(
const
struct
net_device
*
dev
)
31
{
32
const
struct
vlan_dev_priv
*
vlan
=
vlan_dev_priv
(dev);
33
__be16
vlan_id
=
htons
(vlan->
vlan_id
);
34
35
return
garp_request_join
(vlan->
real_dev
, &vlan_gvrp_app,
36
&vlan_id,
sizeof
(vlan_id),
GVRP_ATTR_VID
);
37
}
38
39
void
vlan_gvrp_request_leave
(
const
struct
net_device
*
dev
)
40
{
41
const
struct
vlan_dev_priv
*
vlan
=
vlan_dev_priv
(dev);
42
__be16
vlan_id
=
htons
(vlan->
vlan_id
);
43
44
garp_request_leave
(vlan->
real_dev
, &vlan_gvrp_app,
45
&vlan_id,
sizeof
(vlan_id),
GVRP_ATTR_VID
);
46
}
47
48
int
vlan_gvrp_init_applicant
(
struct
net_device
*
dev
)
49
{
50
return
garp_init_applicant
(dev, &vlan_gvrp_app);
51
}
52
53
void
vlan_gvrp_uninit_applicant
(
struct
net_device
*
dev
)
54
{
55
garp_uninit_applicant
(dev, &vlan_gvrp_app);
56
}
57
58
int
__init
vlan_gvrp_init
(
void
)
59
{
60
return
garp_register_application
(&vlan_gvrp_app);
61
}
62
63
void
vlan_gvrp_uninit
(
void
)
64
{
65
garp_unregister_application
(&vlan_gvrp_app);
66
}
Generated on Thu Jan 10 2013 14:56:38 for Linux Kernel by
1.8.2