diff options
author | Remi Denis-Courmont <remi.denis-courmont@nokia.com> | 2008-09-22 23:08:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-09-22 23:08:04 -0400 |
commit | 5f77076d75d35c9f5619e1f9d7e7428a627f65e6 (patch) | |
tree | 0c0bca5a2f00efb47791f6cf50b6b591409eefab /net | |
parent | 107d0d9b8d9a236883db72841fb61cedd5be845e (diff) |
Phonet: provide MAC header operations
Signed-off-by: RĂ©mi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/phonet/af_phonet.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/net/phonet/af_phonet.c b/net/phonet/af_phonet.c index e6771d3961cf..51397ff308bd 100644 --- a/net/phonet/af_phonet.c +++ b/net/phonet/af_phonet.c | |||
@@ -99,6 +99,35 @@ static struct net_proto_family phonet_proto_family = { | |||
99 | .owner = THIS_MODULE, | 99 | .owner = THIS_MODULE, |
100 | }; | 100 | }; |
101 | 101 | ||
102 | /* Phonet device header operations */ | ||
103 | static int pn_header_create(struct sk_buff *skb, struct net_device *dev, | ||
104 | unsigned short type, const void *daddr, | ||
105 | const void *saddr, unsigned len) | ||
106 | { | ||
107 | u8 *media = skb_push(skb, 1); | ||
108 | |||
109 | if (type != ETH_P_PHONET) | ||
110 | return -1; | ||
111 | |||
112 | if (!saddr) | ||
113 | saddr = dev->dev_addr; | ||
114 | *media = *(const u8 *)saddr; | ||
115 | return 1; | ||
116 | } | ||
117 | |||
118 | static int pn_header_parse(const struct sk_buff *skb, unsigned char *haddr) | ||
119 | { | ||
120 | const u8 *media = skb_mac_header(skb); | ||
121 | *haddr = *media; | ||
122 | return 1; | ||
123 | } | ||
124 | |||
125 | struct header_ops phonet_header_ops = { | ||
126 | .create = pn_header_create, | ||
127 | .parse = pn_header_parse, | ||
128 | }; | ||
129 | EXPORT_SYMBOL(phonet_header_ops); | ||
130 | |||
102 | /* | 131 | /* |
103 | * Prepends an ISI header and sends a datagram. | 132 | * Prepends an ISI header and sends a datagram. |
104 | */ | 133 | */ |