* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.