* pull request: batman-adv 2013-08-28
@ 2013-08-28 11:28 Antonio Quartulli
2013-08-28 11:28 ` [PATCH 1/4] batman-adv: set skb priority according to content Antonio Quartulli
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Antonio Quartulli @ 2013-08-28 11:28 UTC (permalink / raw)
To: davem; +Cc: netdev, b.a.t.m.a.n
Hello David,
here is a small pull request intended for net-next/linux-3.12.
In this batch you have two really minor things (code rearranging and version
increment) and two behavioural changes:
1) the 'protocol' field of outgoing SKBs is now set according to the type of
the payload that batman-adv is going to encapsulate;
2) a uevent is now sent when a node exits the "GW client" mode. This is done in
order to tell userspace that a remote "GW server" is not available anymore.
Please pull or let me know of any problem!
Thanks a lot,
Antonio
The following changes since commit 5b2941b18dc5f60a5c14a5c15693f9c58b0dd922:
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jesse/openvswitch (2013-08-27 22:11:18 -0400)
are available in the git repository at:
git://git.open-mesh.org/linux-merge.git tags/batman-adv-for-davem
for you to fetch changes up to c6eaa3f067d6f9fa55fd9645e93ed79411bebdaf:
batman-adv: send GW_DEL event when the gw client mode is deselected (2013-08-28 11:33:00 +0200)
----------------------------------------------------------------
Included changes:
- set the protocol field in the skb structure according to the encapsulated
payload
- make the gateway component send a uevent in case of "gw client mode"
de-selection
- increment version number
- minor code rearrangement
----------------------------------------------------------------
Antonio Quartulli (2):
batman-adv: move enum definition at the top of the file
batman-adv: send GW_DEL event when the gw client mode is deselected
Simon Wunderlich (2):
batman-adv: set skb priority according to content
batman-adv: Start new development cycle
net/batman-adv/bat_iv_ogm.c | 32 +++++++++++----------
net/batman-adv/gateway_client.c | 27 ++++++++++++++++++
net/batman-adv/gateway_client.h | 1 +
net/batman-adv/icmp_socket.c | 1 +
net/batman-adv/main.c | 58 ++++++++++++++++++++++++++++++++++++++
net/batman-adv/main.h | 3 +-
net/batman-adv/routing.c | 20 ++++++++++++-
net/batman-adv/send.c | 1 -
net/batman-adv/soft-interface.c | 2 ++
net/batman-adv/sysfs.c | 4 +++
net/batman-adv/translation-table.c | 5 ++++
net/batman-adv/unicast.c | 2 ++
net/batman-adv/vis.c | 2 ++
13 files changed, 140 insertions(+), 18 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH 1/4] batman-adv: set skb priority according to content 2013-08-28 11:28 pull request: batman-adv 2013-08-28 Antonio Quartulli @ 2013-08-28 11:28 ` Antonio Quartulli 2013-08-28 11:28 ` [PATCH 2/4] batman-adv: move enum definition at the top of the file Antonio Quartulli ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: Antonio Quartulli @ 2013-08-28 11:28 UTC (permalink / raw) To: davem Cc: netdev, b.a.t.m.a.n, Simon Wunderlich, Marek Lindner, Antonio Quartulli From: Simon Wunderlich <simon@open-mesh.com> The skb priority field may help the wireless driver to choose the right queue (e.g. WMM queues). This should be set in batman-adv, as this information is only available here. This patch adds support for IPv4/IPv6 DS fields and VLAN PCP. Note that only VLAN PCP is used if a VLAN header is present. Also initially set TC_PRIO_CONTROL only for self-generated packets, and keep the priority set by higher layers. Signed-off-by: Simon Wunderlich <simon@open-mesh.com> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org> --- net/batman-adv/bat_iv_ogm.c | 1 + net/batman-adv/icmp_socket.c | 1 + net/batman-adv/main.c | 58 ++++++++++++++++++++++++++++++++++++++ net/batman-adv/main.h | 1 + net/batman-adv/routing.c | 20 ++++++++++++- net/batman-adv/send.c | 1 - net/batman-adv/soft-interface.c | 2 ++ net/batman-adv/translation-table.c | 5 ++++ net/batman-adv/unicast.c | 2 ++ net/batman-adv/vis.c | 2 ++ 10 files changed, 91 insertions(+), 2 deletions(-) diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index 62da527..9886a2f 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -478,6 +478,7 @@ static void batadv_iv_ogm_aggregate_new(const unsigned char *packet_buff, kfree(forw_packet_aggr); goto out; } + forw_packet_aggr->skb->priority = TC_PRIO_CONTROL; skb_reserve(forw_packet_aggr->skb, ETH_HLEN); skb_buff = skb_put(forw_packet_aggr->skb, packet_len); diff --git a/net/batman-adv/icmp_socket.c b/net/batman-adv/icmp_socket.c index b27508b..5a99bb4 100644 --- a/net/batman-adv/icmp_socket.c +++ b/net/batman-adv/icmp_socket.c @@ -183,6 +183,7 @@ static ssize_t batadv_socket_write(struct file *file, const char __user *buff, goto out; } + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, ETH_HLEN); icmp_packet = (struct batadv_icmp_packet_rr *)skb_put(skb, packet_len); diff --git a/net/batman-adv/main.c b/net/batman-adv/main.c index 08125f3..c72d1bc 100644 --- a/net/batman-adv/main.c +++ b/net/batman-adv/main.c @@ -19,6 +19,10 @@ #include <linux/crc32c.h> #include <linux/highmem.h> +#include <linux/if_vlan.h> +#include <net/ip.h> +#include <net/ipv6.h> +#include <net/dsfield.h> #include "main.h" #include "sysfs.h" #include "debugfs.h" @@ -249,6 +253,60 @@ out: return primary_if; } +/** + * batadv_skb_set_priority - sets skb priority according to packet content + * @skb: the packet to be sent + * @offset: offset to the packet content + * + * This function sets a value between 256 and 263 (802.1d priority), which + * can be interpreted by the cfg80211 or other drivers. + */ +void batadv_skb_set_priority(struct sk_buff *skb, int offset) +{ + struct iphdr ip_hdr_tmp, *ip_hdr; + struct ipv6hdr ip6_hdr_tmp, *ip6_hdr; + struct ethhdr ethhdr_tmp, *ethhdr; + struct vlan_ethhdr *vhdr, vhdr_tmp; + u32 prio; + + /* already set, do nothing */ + if (skb->priority >= 256 && skb->priority <= 263) + return; + + ethhdr = skb_header_pointer(skb, offset, sizeof(*ethhdr), ðhdr_tmp); + if (!ethhdr) + return; + + switch (ethhdr->h_proto) { + case htons(ETH_P_8021Q): + vhdr = skb_header_pointer(skb, offset + sizeof(*vhdr), + sizeof(*vhdr), &vhdr_tmp); + if (!vhdr) + return; + prio = ntohs(vhdr->h_vlan_TCI) & VLAN_PRIO_MASK; + prio = prio >> VLAN_PRIO_SHIFT; + break; + case htons(ETH_P_IP): + ip_hdr = skb_header_pointer(skb, offset + sizeof(*ethhdr), + sizeof(*ip_hdr), &ip_hdr_tmp); + if (!ip_hdr) + return; + prio = (ipv4_get_dsfield(ip_hdr) & 0xfc) >> 5; + break; + case htons(ETH_P_IPV6): + ip6_hdr = skb_header_pointer(skb, offset + sizeof(*ethhdr), + sizeof(*ip6_hdr), &ip6_hdr_tmp); + if (!ip6_hdr) + return; + prio = (ipv6_get_dsfield(ip6_hdr) & 0xfc) >> 5; + break; + default: + return; + } + + skb->priority = prio + 256; +} + static int batadv_recv_unhandled_packet(struct sk_buff *skb, struct batadv_hard_iface *recv_if) { diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h index 5e9aebb..a7bca78 100644 --- a/net/batman-adv/main.h +++ b/net/batman-adv/main.h @@ -184,6 +184,7 @@ void batadv_mesh_free(struct net_device *soft_iface); int batadv_is_my_mac(struct batadv_priv *bat_priv, const uint8_t *addr); struct batadv_hard_iface * batadv_seq_print_text_primary_if_get(struct seq_file *seq); +void batadv_skb_set_priority(struct sk_buff *skb, int offset); int batadv_batman_skb_recv(struct sk_buff *skb, struct net_device *dev, struct packet_type *ptype, struct net_device *orig_dev); diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c index 2f0bd3f..0439395 100644 --- a/net/batman-adv/routing.c +++ b/net/batman-adv/routing.c @@ -775,7 +775,7 @@ static int batadv_route_unicast_packet(struct sk_buff *skb, struct batadv_neigh_node *neigh_node = NULL; struct batadv_unicast_packet *unicast_packet; struct ethhdr *ethhdr = eth_hdr(skb); - int res, ret = NET_RX_DROP; + int res, hdr_len, ret = NET_RX_DROP; struct sk_buff *new_skb; unicast_packet = (struct batadv_unicast_packet *)skb->data; @@ -835,6 +835,22 @@ static int batadv_route_unicast_packet(struct sk_buff *skb, /* decrement ttl */ unicast_packet->header.ttl--; + switch (unicast_packet->header.packet_type) { + case BATADV_UNICAST_4ADDR: + hdr_len = sizeof(struct batadv_unicast_4addr_packet); + break; + case BATADV_UNICAST: + hdr_len = sizeof(struct batadv_unicast_packet); + break; + default: + /* other packet types not supported - yet */ + hdr_len = -1; + break; + } + + if (hdr_len > 0) + batadv_skb_set_priority(skb, hdr_len); + res = batadv_send_skb_to_orig(skb, orig_node, recv_if); /* translate transmit result into receive result */ @@ -1193,6 +1209,8 @@ int batadv_recv_bcast_packet(struct sk_buff *skb, if (batadv_bla_check_bcast_duplist(bat_priv, skb)) goto out; + batadv_skb_set_priority(skb, sizeof(struct batadv_bcast_packet)); + /* rebroadcast packet */ batadv_add_bcast_packet_to_list(bat_priv, skb, 1); diff --git a/net/batman-adv/send.c b/net/batman-adv/send.c index e9ff8d8..0266edd 100644 --- a/net/batman-adv/send.c +++ b/net/batman-adv/send.c @@ -67,7 +67,6 @@ int batadv_send_skb_packet(struct sk_buff *skb, ethhdr->h_proto = __constant_htons(ETH_P_BATMAN); skb_set_network_header(skb, ETH_HLEN); - skb->priority = TC_PRIO_CONTROL; skb->protocol = __constant_htons(ETH_P_BATMAN); skb->dev = hard_iface->net_dev; diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c index 0f04e1c..4493913 100644 --- a/net/batman-adv/soft-interface.c +++ b/net/batman-adv/soft-interface.c @@ -229,6 +229,8 @@ static int batadv_interface_tx(struct sk_buff *skb, */ } + batadv_skb_set_priority(skb, 0); + /* ethernet packet should be broadcasted */ if (do_bcast) { primary_if = batadv_primary_if_get_selected(bat_priv); diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c index 429aeef..34510f3 100644 --- a/net/batman-adv/translation-table.c +++ b/net/batman-adv/translation-table.c @@ -1626,6 +1626,7 @@ batadv_tt_response_fill_table(uint16_t tt_len, uint8_t ttvn, if (!skb) goto out; + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, ETH_HLEN); tt_response = (struct batadv_tt_query_packet *)skb_put(skb, len); tt_response->ttvn = ttvn; @@ -1691,6 +1692,7 @@ static int batadv_send_tt_request(struct batadv_priv *bat_priv, if (!skb) goto out; + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, ETH_HLEN); tt_req_len = sizeof(*tt_request); @@ -1788,6 +1790,7 @@ batadv_send_other_tt_response(struct batadv_priv *bat_priv, if (!skb) goto unlock; + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, ETH_HLEN); packet_pos = skb_put(skb, len); tt_response = (struct batadv_tt_query_packet *)packet_pos; @@ -1906,6 +1909,7 @@ batadv_send_my_tt_response(struct batadv_priv *bat_priv, if (!skb) goto unlock; + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, ETH_HLEN); packet_pos = skb_put(skb, len); tt_response = (struct batadv_tt_query_packet *)packet_pos; @@ -2240,6 +2244,7 @@ static void batadv_send_roam_adv(struct batadv_priv *bat_priv, uint8_t *client, if (!skb) goto out; + skb->priority = TC_PRIO_CONTROL; skb_reserve(skb, ETH_HLEN); roam_adv_packet = (struct batadv_roam_adv_packet *)skb_put(skb, len); diff --git a/net/batman-adv/unicast.c b/net/batman-adv/unicast.c index 857e1b8..48b31d3 100644 --- a/net/batman-adv/unicast.c +++ b/net/batman-adv/unicast.c @@ -242,6 +242,8 @@ int batadv_frag_send_skb(struct sk_buff *skb, struct batadv_priv *bat_priv, frag_skb = dev_alloc_skb(data_len - (data_len / 2) + ucf_hdr_len); if (!frag_skb) goto dropped; + + skb->priority = TC_PRIO_CONTROL; skb_reserve(frag_skb, ucf_hdr_len); unicast_packet = (struct batadv_unicast_packet *)skb->data; diff --git a/net/batman-adv/vis.c b/net/batman-adv/vis.c index 4983340..d8ea31a 100644 --- a/net/batman-adv/vis.c +++ b/net/batman-adv/vis.c @@ -397,6 +397,7 @@ batadv_add_packet(struct batadv_priv *bat_priv, kfree(info); return NULL; } + info->skb_packet->priority = TC_PRIO_CONTROL; skb_reserve(info->skb_packet, ETH_HLEN); packet = (struct batadv_vis_packet *)skb_put(info->skb_packet, len); @@ -861,6 +862,7 @@ int batadv_vis_init(struct batadv_priv *bat_priv) if (!bat_priv->vis.my_info->skb_packet) goto free_info; + bat_priv->vis.my_info->skb_packet->priority = TC_PRIO_CONTROL; skb_reserve(bat_priv->vis.my_info->skb_packet, ETH_HLEN); tmp_skb = bat_priv->vis.my_info->skb_packet; packet = (struct batadv_vis_packet *)skb_put(tmp_skb, sizeof(*packet)); -- 1.8.1.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/4] batman-adv: move enum definition at the top of the file 2013-08-28 11:28 pull request: batman-adv 2013-08-28 Antonio Quartulli 2013-08-28 11:28 ` [PATCH 1/4] batman-adv: set skb priority according to content Antonio Quartulli @ 2013-08-28 11:28 ` Antonio Quartulli 2013-08-28 11:28 ` [PATCH 3/4] batman-adv: Start new development cycle Antonio Quartulli ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: Antonio Quartulli @ 2013-08-28 11:28 UTC (permalink / raw) To: davem; +Cc: netdev, b.a.t.m.a.n, Antonio Quartulli Signed-off-by: Antonio Quartulli <ordex@autistici.org> --- net/batman-adv/bat_iv_ogm.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index 9886a2f..0a8a80c 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -28,6 +28,22 @@ #include "bat_algo.h" #include "network-coding.h" + +/** + * batadv_dup_status - duplicate status + * @BATADV_NO_DUP: the packet is a duplicate + * @BATADV_ORIG_DUP: OGM is a duplicate in the originator (but not for the + * neighbor) + * @BATADV_NEIGH_DUP: OGM is a duplicate for the neighbor + * @BATADV_PROTECTED: originator is currently protected (after reboot) + */ +enum batadv_dup_status { + BATADV_NO_DUP = 0, + BATADV_ORIG_DUP, + BATADV_NEIGH_DUP, + BATADV_PROTECTED, +}; + /** * batadv_ring_buffer_set - update the ring buffer with the given value * @lq_recv: pointer to the ring buffer @@ -71,21 +87,6 @@ static uint8_t batadv_ring_buffer_avg(const uint8_t lq_recv[]) return (uint8_t)(sum / count); } -/* - * batadv_dup_status - duplicate status - * @BATADV_NO_DUP: the packet is a duplicate - * @BATADV_ORIG_DUP: OGM is a duplicate in the originator (but not for the - * neighbor) - * @BATADV_NEIGH_DUP: OGM is a duplicate for the neighbor - * @BATADV_PROTECTED: originator is currently protected (after reboot) - */ -enum batadv_dup_status { - BATADV_NO_DUP = 0, - BATADV_ORIG_DUP, - BATADV_NEIGH_DUP, - BATADV_PROTECTED, -}; - static struct batadv_neigh_node * batadv_iv_ogm_neigh_new(struct batadv_hard_iface *hard_iface, const uint8_t *neigh_addr, -- 1.8.1.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] batman-adv: Start new development cycle 2013-08-28 11:28 pull request: batman-adv 2013-08-28 Antonio Quartulli 2013-08-28 11:28 ` [PATCH 1/4] batman-adv: set skb priority according to content Antonio Quartulli 2013-08-28 11:28 ` [PATCH 2/4] batman-adv: move enum definition at the top of the file Antonio Quartulli @ 2013-08-28 11:28 ` Antonio Quartulli 2013-08-28 11:28 ` [PATCH 4/4] batman-adv: send GW_DEL event when the gw client mode is deselected Antonio Quartulli [not found] ` <1377689291-2412-1-git-send-email-ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org> 4 siblings, 0 replies; 6+ messages in thread From: Antonio Quartulli @ 2013-08-28 11:28 UTC (permalink / raw) To: davem; +Cc: netdev, b.a.t.m.a.n, Simon Wunderlich, Antonio Quartulli From: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org> --- net/batman-adv/main.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/batman-adv/main.h b/net/batman-adv/main.h index a7bca78..5d00f23 100644 --- a/net/batman-adv/main.h +++ b/net/batman-adv/main.h @@ -26,7 +26,7 @@ #define BATADV_DRIVER_DEVICE "batman-adv" #ifndef BATADV_SOURCE_VERSION -#define BATADV_SOURCE_VERSION "2013.3.0" +#define BATADV_SOURCE_VERSION "2013.4.0" #endif /* B.A.T.M.A.N. parameters */ -- 1.8.1.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/4] batman-adv: send GW_DEL event when the gw client mode is deselected 2013-08-28 11:28 pull request: batman-adv 2013-08-28 Antonio Quartulli ` (2 preceding siblings ...) 2013-08-28 11:28 ` [PATCH 3/4] batman-adv: Start new development cycle Antonio Quartulli @ 2013-08-28 11:28 ` Antonio Quartulli [not found] ` <1377689291-2412-1-git-send-email-ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org> 4 siblings, 0 replies; 6+ messages in thread From: Antonio Quartulli @ 2013-08-28 11:28 UTC (permalink / raw) To: davem Cc: netdev, b.a.t.m.a.n, Antonio Quartulli, Marek Lindner, Antonio Quartulli From: Antonio Quartulli <antonio@open-mesh.com> Whenever the GW client mode is deselected, a DEL event has to be sent in order to tell userspace that the current gateway has been lost. Send the uevent on state change only if a gateway was currently selected. Reported-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Antonio Quartulli <antonio@open-mesh.com> Signed-off-by: Marek Lindner <lindner_marek@yahoo.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org> --- net/batman-adv/gateway_client.c | 27 +++++++++++++++++++++++++++ net/batman-adv/gateway_client.h | 1 + net/batman-adv/sysfs.c | 4 ++++ 3 files changed, 32 insertions(+) diff --git a/net/batman-adv/gateway_client.c b/net/batman-adv/gateway_client.c index 7614af3..1ce4b87 100644 --- a/net/batman-adv/gateway_client.c +++ b/net/batman-adv/gateway_client.c @@ -190,6 +190,33 @@ next: return curr_gw; } +/** + * batadv_gw_check_client_stop - check if client mode has been switched off + * @bat_priv: the bat priv with all the soft interface information + * + * This function assumes the caller has checked that the gw state *is actually + * changing*. This function is not supposed to be called when there is no state + * change. + */ +void batadv_gw_check_client_stop(struct batadv_priv *bat_priv) +{ + struct batadv_gw_node *curr_gw; + + if (atomic_read(&bat_priv->gw_mode) != BATADV_GW_MODE_CLIENT) + return; + + curr_gw = batadv_gw_get_selected_gw_node(bat_priv); + if (!curr_gw) + return; + + /* if batman-adv is switching the gw client mode off and a gateway was + * already selected, send a DEL uevent + */ + batadv_throw_uevent(bat_priv, BATADV_UEV_GW, BATADV_UEV_DEL, NULL); + + batadv_gw_node_free_ref(curr_gw); +} + void batadv_gw_election(struct batadv_priv *bat_priv) { struct batadv_gw_node *curr_gw = NULL, *next_gw = NULL; diff --git a/net/batman-adv/gateway_client.h b/net/batman-adv/gateway_client.h index 1037d75..ceef4eb 100644 --- a/net/batman-adv/gateway_client.h +++ b/net/batman-adv/gateway_client.h @@ -20,6 +20,7 @@ #ifndef _NET_BATMAN_ADV_GATEWAY_CLIENT_H_ #define _NET_BATMAN_ADV_GATEWAY_CLIENT_H_ +void batadv_gw_check_client_stop(struct batadv_priv *bat_priv); void batadv_gw_deselect(struct batadv_priv *bat_priv); void batadv_gw_election(struct batadv_priv *bat_priv); struct batadv_orig_node * diff --git a/net/batman-adv/sysfs.c b/net/batman-adv/sysfs.c index 929e304..4114b96 100644 --- a/net/batman-adv/sysfs.c +++ b/net/batman-adv/sysfs.c @@ -385,6 +385,10 @@ static ssize_t batadv_store_gw_mode(struct kobject *kobj, curr_gw_mode_str, buff); batadv_gw_deselect(bat_priv); + /* always call batadv_gw_check_client_stop() before changing the gateway + * state + */ + batadv_gw_check_client_stop(bat_priv); atomic_set(&bat_priv->gw_mode, (unsigned int)gw_mode_tmp); return count; } -- 1.8.1.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
[parent not found: <1377689291-2412-1-git-send-email-ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org>]
* Re: pull request: batman-adv 2013-08-28 [not found] ` <1377689291-2412-1-git-send-email-ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org> @ 2013-08-29 5:45 ` David Miller 0 siblings, 0 replies; 6+ messages in thread From: David Miller @ 2013-08-29 5:45 UTC (permalink / raw) To: ordex-GaUfNO9RBHfsrOwW+9ziJQ Cc: netdev-u79uwXL29TY76Z2rM5mHXA, b.a.t.m.a.n-ZwoEplunGu2X36UT3dwllkB+6BGkLq7r From: Antonio Quartulli <ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org> Date: Wed, 28 Aug 2013 13:28:07 +0200 > here is a small pull request intended for net-next/linux-3.12. > > In this batch you have two really minor things (code rearranging and version > increment) and two behavioural changes: > 1) the 'protocol' field of outgoing SKBs is now set according to the type of > the payload that batman-adv is going to encapsulate; > 2) a uevent is now sent when a node exits the "GW client" mode. This is done in > order to tell userspace that a remote "GW server" is not available anymore. > > Please pull or let me know of any problem! Pulled, thanks Antonio. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-08-29 5:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-28 11:28 pull request: batman-adv 2013-08-28 Antonio Quartulli
2013-08-28 11:28 ` [PATCH 1/4] batman-adv: set skb priority according to content Antonio Quartulli
2013-08-28 11:28 ` [PATCH 2/4] batman-adv: move enum definition at the top of the file Antonio Quartulli
2013-08-28 11:28 ` [PATCH 3/4] batman-adv: Start new development cycle Antonio Quartulli
2013-08-28 11:28 ` [PATCH 4/4] batman-adv: send GW_DEL event when the gw client mode is deselected Antonio Quartulli
[not found] ` <1377689291-2412-1-git-send-email-ordex-GaUfNO9RBHfsrOwW+9ziJQ@public.gmane.org>
2013-08-29 5:45 ` pull request: batman-adv 2013-08-28 David Miller
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox