* [PATCH net 1/3] pktgen: should not turn off vlan when we disable svlan @ 2014-05-15 9:46 Hangbin Liu 2014-05-15 9:46 ` [PATCH net 2/3] pktgen: give user result when disable vlan/svlan Hangbin Liu 2014-05-15 9:46 ` [PATCH net 3/3] pktgen: disable IPv6 when we want to use IPv4 Hangbin Liu 0 siblings, 2 replies; 6+ messages in thread From: Hangbin Liu @ 2014-05-15 9:46 UTC (permalink / raw) To: David Miller; +Cc: Francesco Fondelli, netdev, Hangbin Liu We will turn off svlan when disable vlan, but should keep vlan on when disable svlan. Also fix the doc typo. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- Documentation/networking/pktgen.txt | 2 +- net/core/pktgen.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt index 0e30c78..672fa23 100644 --- a/Documentation/networking/pktgen.txt +++ b/Documentation/networking/pktgen.txt @@ -150,7 +150,7 @@ Examples: pgset "svlan_cfi 0" set canonical format identifier 0-1 (default 0) pgset "vlan_id 9999" > 4095 remove vlan and svlan tags - pgset "svlan 9999" > 4095 remove svlan tag + pgset "svlan_id 9999" > 4095 remove svlan tag pgset "tos XX" set former IPv4 TOS field (e.g. "tos 28" for AF11 no ECN, default 00) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 0304f98..dcf367f 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1627,11 +1627,10 @@ static ssize_t pktgen_if_write(struct file *file, pkt_dev->nr_labels = 0; /* turn off MPLS */ sprintf(pg_result, "OK: svlan_id=%u", pkt_dev->svlan_id); } else { - pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ pkt_dev->svlan_id = 0xffff; if (debug) - pr_debug("VLAN/SVLAN turned off\n"); + pr_debug("SVLAN turned off\n"); } return count; } -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net 2/3] pktgen: give user result when disable vlan/svlan 2014-05-15 9:46 [PATCH net 1/3] pktgen: should not turn off vlan when we disable svlan Hangbin Liu @ 2014-05-15 9:46 ` Hangbin Liu 2014-05-15 10:00 ` Daniel Borkmann 2014-05-15 9:46 ` [PATCH net 3/3] pktgen: disable IPv6 when we want to use IPv4 Hangbin Liu 1 sibling, 1 reply; 6+ messages in thread From: Hangbin Liu @ 2014-05-15 9:46 UTC (permalink / raw) To: David Miller; +Cc: Francesco Fondelli, netdev, Hangbin Liu Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- net/core/pktgen.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index dcf367f..1809bdf 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1573,8 +1573,7 @@ static ssize_t pktgen_if_write(struct file *file, pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ pkt_dev->svlan_id = 0xffff; - if (debug) - pr_debug("VLAN/SVLAN turned off\n"); + sprintf(pg_result, "OK: VLAN/SVLAN turned off"); } return count; } @@ -1629,8 +1628,7 @@ static ssize_t pktgen_if_write(struct file *file, } else { pkt_dev->svlan_id = 0xffff; - if (debug) - pr_debug("SVLAN turned off\n"); + sprintf(pg_result, "OK: SVLAN turned off"); } return count; } -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH net 2/3] pktgen: give user result when disable vlan/svlan 2014-05-15 9:46 ` [PATCH net 2/3] pktgen: give user result when disable vlan/svlan Hangbin Liu @ 2014-05-15 10:00 ` Daniel Borkmann 2014-05-15 11:05 ` Hangbin Liu 0 siblings, 1 reply; 6+ messages in thread From: Daniel Borkmann @ 2014-05-15 10:00 UTC (permalink / raw) To: Hangbin Liu; +Cc: David Miller, Francesco Fondelli, netdev On 05/15/2014 11:46 AM, Hangbin Liu wrote: > Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> > --- > net/core/pktgen.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/net/core/pktgen.c b/net/core/pktgen.c > index dcf367f..1809bdf 100644 > --- a/net/core/pktgen.c > +++ b/net/core/pktgen.c > @@ -1573,8 +1573,7 @@ static ssize_t pktgen_if_write(struct file *file, > pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ > pkt_dev->svlan_id = 0xffff; > > - if (debug) > - pr_debug("VLAN/SVLAN turned off\n"); > + sprintf(pg_result, "OK: VLAN/SVLAN turned off"); I think that might break user scripts as pg_result is copied to user space, and currently only expected to return 'OK: svlan_id=%u' if it was actually successful. Unfortunately, scripts that might only check for 'OK' in the string could make wrong assumptions later on. > } > return count; > } > @@ -1629,8 +1628,7 @@ static ssize_t pktgen_if_write(struct file *file, > } else { > pkt_dev->svlan_id = 0xffff; > > - if (debug) > - pr_debug("SVLAN turned off\n"); > + sprintf(pg_result, "OK: SVLAN turned off"); Ditto. > } > return count; > } > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net 2/3] pktgen: give user result when disable vlan/svlan 2014-05-15 10:00 ` Daniel Borkmann @ 2014-05-15 11:05 ` Hangbin Liu 2014-05-15 14:12 ` Hangbin Liu 0 siblings, 1 reply; 6+ messages in thread From: Hangbin Liu @ 2014-05-15 11:05 UTC (permalink / raw) To: Daniel Borkmann; +Cc: David Miller, Francesco Fondelli, netdev On Thu, May 15, 2014 at 12:00:31PM +0200, Daniel Borkmann wrote: > On 05/15/2014 11:46 AM, Hangbin Liu wrote: > >Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> > >--- > > net/core/pktgen.c | 6 ++---- > > 1 file changed, 2 insertions(+), 4 deletions(-) > > > >diff --git a/net/core/pktgen.c b/net/core/pktgen.c > >index dcf367f..1809bdf 100644 > >--- a/net/core/pktgen.c > >+++ b/net/core/pktgen.c > >@@ -1573,8 +1573,7 @@ static ssize_t pktgen_if_write(struct file *file, > > pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ > > pkt_dev->svlan_id = 0xffff; > > > >- if (debug) > >- pr_debug("VLAN/SVLAN turned off\n"); > >+ sprintf(pg_result, "OK: VLAN/SVLAN turned off"); > > I think that might break user scripts as pg_result is copied to user > space, and currently only expected to return 'OK: svlan_id=%u' if it > was actually successful. Unfortunately, scripts that might only check > for 'OK' in the string could make wrong assumptions later on. But the original behavior will keep the last return value, which may make user confused. e.g. # echo vlan_id 10 > /proc/net/pktgen/eno4 # cat /proc/net/pktgen/eno4 Params: count 1000 min_pkt_size: 0 max_pkt_size: 0 frags: 0 delay: 0 clone_skb: 0 ifname: eno4 flows: 0 flowlen: 0 queue_map_min: 0 queue_map_max: 0 dst_min: dst_max: src_min: src_max: src_mac: 6c:ae:8b:20:7b:cc dst_mac: 00:00:00:00:00:00 udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9 src_mac_count: 0 dst_mac_count: 0 vlan_id: 10 vlan_p: 0 vlan_cfi: 0 Flags: Current: pkts-sofar: 0 errors: 0 started: 0us stopped: 0us idle: 0us seq_num: 0 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 cur_saddr: 0.0.0.0 cur_daddr: 0.0.0.0 cur_udp_dst: 0 cur_udp_src: 0 cur_queue_map: 0 flows: 0 Result: OK: vlan_id=10 # echo vlan_id 9999 > /proc/net/pktgen/eno4 # cat /proc/net/pktgen/eno4 Params: count 1000 min_pkt_size: 0 max_pkt_size: 0 frags: 0 delay: 0 clone_skb: 0 ifname: eno4 flows: 0 flowlen: 0 queue_map_min: 0 queue_map_max: 0 dst_min: dst_max: src_min: src_max: src_mac: 6c:ae:8b:20:7b:cc dst_mac: 00:00:00:00:00:00 udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9 src_mac_count: 0 dst_mac_count: 0 Flags: Current: pkts-sofar: 0 errors: 0 started: 0us stopped: 0us idle: 0us seq_num: 0 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 cur_saddr: 0.0.0.0 cur_daddr: 0.0.0.0 cur_udp_dst: 0 cur_udp_src: 0 cur_queue_map: 0 flows: 0 Result: OK: vlan_id=10 > > > } > > return count; > > } > >@@ -1629,8 +1628,7 @@ static ssize_t pktgen_if_write(struct file *file, > > } else { > > pkt_dev->svlan_id = 0xffff; > > > >- if (debug) > >- pr_debug("SVLAN turned off\n"); > >+ sprintf(pg_result, "OK: SVLAN turned off"); > > Ditto. > > > } > > return count; > > } > > -- Thanks & Best Regards Hangbin Liu <liuhangbin@gmail.com> ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH net 2/3] pktgen: give user result when disable vlan/svlan 2014-05-15 11:05 ` Hangbin Liu @ 2014-05-15 14:12 ` Hangbin Liu 0 siblings, 0 replies; 6+ messages in thread From: Hangbin Liu @ 2014-05-15 14:12 UTC (permalink / raw) To: Daniel Borkmann; +Cc: David Miller, Francesco Fondelli, netdev On Thu, May 15, 2014 at 07:05:56PM +0800, Hangbin Liu wrote: > On Thu, May 15, 2014 at 12:00:31PM +0200, Daniel Borkmann wrote: > > On 05/15/2014 11:46 AM, Hangbin Liu wrote: > > >Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> > > >--- > > > net/core/pktgen.c | 6 ++---- > > > 1 file changed, 2 insertions(+), 4 deletions(-) > > > > > >diff --git a/net/core/pktgen.c b/net/core/pktgen.c > > >index dcf367f..1809bdf 100644 > > >--- a/net/core/pktgen.c > > >+++ b/net/core/pktgen.c > > >@@ -1573,8 +1573,7 @@ static ssize_t pktgen_if_write(struct file *file, > > > pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ > > > pkt_dev->svlan_id = 0xffff; > > > > > >- if (debug) > > >- pr_debug("VLAN/SVLAN turned off\n"); > > >+ sprintf(pg_result, "OK: VLAN/SVLAN turned off"); > > > > I think that might break user scripts as pg_result is copied to user > > space, and currently only expected to return 'OK: svlan_id=%u' if it > > was actually successful. Unfortunately, scripts that might only check > > for 'OK' in the string could make wrong assumptions later on. or maybe we can return 0xffff when disabled vlan? like diff --git a/net/core/pktgen.c b/net/core/pktgen.c index fabd17e..64afb91 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1580,7 +1580,10 @@ static ssize_t pktgen_if_write(struct file *file, pkt_dev->vlan_id = 0xffff; /* turn off VLAN/SVLAN */ pkt_dev->svlan_id = 0xffff; - sprintf(pg_result, "OK: VLAN/SVLAN turned off"); + sprintf(pg_result, "OK: vlan_id=0x%x", pkt_dev->vlan_id); + + if (debug) + pr_debug("VLAN/SVLAN turned off\n"); } return count; } But I saw dst_mac, src_mac and clear_counters also didn't use the OK: param=value format. sprintf(pg_result, "OK: dstmac %pM", pkt_dev->dst_mac); sprintf(pg_result, "OK: srcmac %pM", pkt_dev->src_mac); sprintf(pg_result, "OK: Clearing counters.\n"); We can change src_mac and dst_mac to "srcmac=%pM" easily, but I don't know how to edit counters. return OK: counters=0 ? > > But the original behavior will keep the last return value, which may make user > confused. e.g. > > # echo vlan_id 10 > /proc/net/pktgen/eno4 > # cat /proc/net/pktgen/eno4 > Params: count 1000 min_pkt_size: 0 max_pkt_size: 0 > frags: 0 delay: 0 clone_skb: 0 ifname: eno4 > flows: 0 flowlen: 0 > queue_map_min: 0 queue_map_max: 0 > dst_min: dst_max: > src_min: src_max: > src_mac: 6c:ae:8b:20:7b:cc dst_mac: 00:00:00:00:00:00 > udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9 > src_mac_count: 0 dst_mac_count: 0 > vlan_id: 10 vlan_p: 0 vlan_cfi: 0 > Flags: > Current: > pkts-sofar: 0 errors: 0 > started: 0us stopped: 0us idle: 0us > seq_num: 0 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 > cur_saddr: 0.0.0.0 cur_daddr: 0.0.0.0 > cur_udp_dst: 0 cur_udp_src: 0 > cur_queue_map: 0 > flows: 0 > Result: OK: vlan_id=10 > > # echo vlan_id 9999 > /proc/net/pktgen/eno4 > # cat /proc/net/pktgen/eno4 > Params: count 1000 min_pkt_size: 0 max_pkt_size: 0 > frags: 0 delay: 0 clone_skb: 0 ifname: eno4 > flows: 0 flowlen: 0 > queue_map_min: 0 queue_map_max: 0 > dst_min: dst_max: > src_min: src_max: > src_mac: 6c:ae:8b:20:7b:cc dst_mac: 00:00:00:00:00:00 > udp_src_min: 9 udp_src_max: 9 udp_dst_min: 9 udp_dst_max: 9 > src_mac_count: 0 dst_mac_count: 0 > Flags: > Current: > pkts-sofar: 0 errors: 0 > started: 0us stopped: 0us idle: 0us > seq_num: 0 cur_dst_mac_offset: 0 cur_src_mac_offset: 0 > cur_saddr: 0.0.0.0 cur_daddr: 0.0.0.0 > cur_udp_dst: 0 cur_udp_src: 0 > cur_queue_map: 0 > flows: 0 > Result: OK: vlan_id=10 > > > > > > } > > > return count; > > > } > > >@@ -1629,8 +1628,7 @@ static ssize_t pktgen_if_write(struct file *file, > > > } else { > > > pkt_dev->svlan_id = 0xffff; > > > > > >- if (debug) > > >- pr_debug("SVLAN turned off\n"); > > >+ sprintf(pg_result, "OK: SVLAN turned off"); > > > > Ditto. > > > > > } > > > return count; > > > } > > > > > -- > > Thanks & Best Regards > Hangbin Liu <liuhangbin@gmail.com> -- Thanks & Best Regards Hangbin Liu <liuhangbin@gmail.com> ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH net 3/3] pktgen: disable IPv6 when we want to use IPv4 2014-05-15 9:46 [PATCH net 1/3] pktgen: should not turn off vlan when we disable svlan Hangbin Liu 2014-05-15 9:46 ` [PATCH net 2/3] pktgen: give user result when disable vlan/svlan Hangbin Liu @ 2014-05-15 9:46 ` Hangbin Liu 1 sibling, 0 replies; 6+ messages in thread From: Hangbin Liu @ 2014-05-15 9:46 UTC (permalink / raw) To: David Miller; +Cc: Francesco Fondelli, netdev, Hangbin Liu Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- net/core/pktgen.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 1809bdf..fabd17e 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1264,6 +1264,8 @@ static ssize_t pktgen_if_write(struct file *file, if (len < 0) return len; + pkt_dev->flags &= ~F_IPV6; + if (copy_from_user(buf, &user_buffer[i], len)) return -EFAULT; buf[len] = 0; @@ -1284,6 +1286,7 @@ static ssize_t pktgen_if_write(struct file *file, if (len < 0) return len; + pkt_dev->flags &= ~F_IPV6; if (copy_from_user(buf, &user_buffer[i], len)) return -EFAULT; @@ -1395,6 +1398,8 @@ static ssize_t pktgen_if_write(struct file *file, if (len < 0) return len; + pkt_dev->flags &= ~F_IPV6; + if (copy_from_user(buf, &user_buffer[i], len)) return -EFAULT; buf[len] = 0; @@ -1415,6 +1420,8 @@ static ssize_t pktgen_if_write(struct file *file, if (len < 0) return len; + pkt_dev->flags &= ~F_IPV6; + if (copy_from_user(buf, &user_buffer[i], len)) return -EFAULT; buf[len] = 0; -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-05-15 14:12 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-05-15 9:46 [PATCH net 1/3] pktgen: should not turn off vlan when we disable svlan Hangbin Liu 2014-05-15 9:46 ` [PATCH net 2/3] pktgen: give user result when disable vlan/svlan Hangbin Liu 2014-05-15 10:00 ` Daniel Borkmann 2014-05-15 11:05 ` Hangbin Liu 2014-05-15 14:12 ` Hangbin Liu 2014-05-15 9:46 ` [PATCH net 3/3] pktgen: disable IPv6 when we want to use IPv4 Hangbin Liu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).